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---
