Index: src/Tests/ResolvExpr/Expected/Abstype.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Abstype.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Abstype.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,215 @@
+T: a type
+  with assertions
+    x: a function
+        with parameters
+          instance of type T 
+        returning 
+          instance of type T 
+
+
+?=?: a automatically generated function
+    with parameters
+      _dst: a pointer to instance of type T 
+      _src: a instance of type T 
+    returning 
+      instance of type T 
+
+y: a function
+    with parameters
+      t: a instance of type T 
+    returning 
+      instance of type T 
+    with body 
+      Declaration of t_instance: a instance of type T 
+      
+        Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: x: a function
+        with parameters
+          instance of type T 
+        returning 
+          instance of type T 
+
+  to arguments
+          Variable Expression: t: a instance of type T 
+
+
+to:
+  instance of type T 
+with environment:
+  Types:
+  Non-types:
+
+
+
+*?: a forall
+      T: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+
+    function
+    with parameters
+      pointer to instance of type T 
+    returning 
+      lvalue instance of type T 
+
+?++: a function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a forall
+      DT: a incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT 
+      pointer to instance of type DT 
+    returning 
+      pointer to instance of type DT 
+
+U: a type for pointer to signed int 
+?=?: a automatically generated function
+    with parameters
+      _dst: a pointer to instance of type U 
+      _src: a instance of type U 
+    returning 
+      instance of type U 
+    with body 
+      
+        Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?=?: a forall
+          DT: a incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT 
+          pointer to instance of type DT 
+        returning 
+          pointer to instance of type DT 
+
+  to arguments
+          Cast of:
+        Variable Expression: _dst: a pointer to instance of type U 
+
+      to:
+        pointer to pointer to signed int 
+
+          Cast of:
+        Variable Expression: _src: a instance of type U 
+
+      to:
+        pointer to signed int 
+
+
+to:
+  instance of type U 
+with environment:
+  Types:
+    _0_DT -> signed int 
+  Non-types:
+
+
+
+x: a function
+    with parameters
+      u: a instance of type U 
+    returning 
+      instance of type U 
+    with body 
+      Declaration of u_instance: a instance of type U with initializer 
+        Simple Initializer:           Name: u
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?++: a function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Application of
+                  Variable Expression: *?: a forall
+                        T: a type
+                          with assertions
+                            ?=?: a pointer to function
+                                with parameters
+                                  pointer to instance of type T 
+                                  instance of type T 
+                                returning 
+                                  instance of type T 
+
+
+                      function
+                      with parameters
+                        pointer to instance of type T 
+                      returning 
+                        lvalue instance of type T 
+
+                to arguments
+                                      Cast of:
+                      Variable Expression: u: a instance of type U 
+
+                    to:
+                      pointer to signed int 
+
+                with inferred parameters:
+                  ?=?: a function
+                    with parameters
+                      pointer to signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+
+          with environment:
+            Types:
+              _0_T -> signed int 
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: u: a instance of type U 
+
+to:
+  instance of type U 
+with environment:
+  Types:
+  Non-types:
+
+
+
+break_abstraction: a function
+    with parameters
+      u: a instance of type U 
+    returning 
+      pointer to signed int 
+    with body 
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: u: a instance of type U 
+
+to:
+  pointer to signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
Index: src/Tests/ResolvExpr/Expected/Attributes.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Attributes.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Attributes.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,70 @@
+@voon: a signed int 
+@voon: a double 
+@bort: a function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+@bort: a function
+    with parameters
+      double 
+    returning 
+      signed int 
+
+g: a function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of x: a float 
+      Declaration of x: a double 
+      
+        Expression Statement:
+          Attr             Variable Expression: @bort: a function
+                with parameters
+                  double 
+                returning 
+                  signed int 
+
+applied to: lvalue double 
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Attr             Variable Expression: @bort: a function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+applied to: signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Variable Expression: @voon: a signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Cast.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Cast.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Cast.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,78 @@
+f: a char 
+f: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of f: a char 
+      Declaration of f: a double 
+      
+        Expression Statement:
+          Cast of:
+            Variable Expression: f: a char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: a short signed int 
+      
+        Expression Statement:
+          Cast of:
+            Variable Expression: f: a short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Cast of:
+            Variable Expression: f: a function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Cast of:
+            Tuple:
+                              Variable Expression: f: a short signed int 
+
+                              Variable Expression: f: a double 
+
+                              Variable Expression: f: a function
+                      accepting unspecified arguments
+                    returning 
+                      nothing 
+
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/CastError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/CastError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/CastError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,94 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: a signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: a double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: a function
+                accepting unspecified arguments
+              returning 
+                nothing 
+
+
+        to:
+          pointer to function
+                accepting unspecified arguments
+              returning 
+                signed int 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: a signed int 
+
+        to:
+          pointer to function
+                accepting unspecified arguments
+              returning 
+                signed int 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: a double 
+
+        to:
+          pointer to function
+                accepting unspecified arguments
+              returning 
+                signed int 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+
Index: src/Tests/ResolvExpr/Expected/Forall.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Forall.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Forall.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,495 @@
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: a function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: a function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: a function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: a function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+g1: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of f: a forall
+            T: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type T 
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+
+          function
+          with parameters
+            instance of type T 
+          returning 
+            instance of type T 
+
+      Declaration of f: a function
+          with parameters
+            signed int 
+          returning 
+            nothing 
+
+      Declaration of h: a function
+          with parameters
+            p: a pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            nothing 
+
+      Declaration of x: a signed int 
+      Declaration of y: a pointer to function
+          returning 
+            nothing 
+
+      Declaration of z: a char 
+      Declaration of w: a float 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Variable Expression: x: a signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a forall
+                  T: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type T 
+                            instance of type T 
+                          returning 
+                            instance of type T 
+
+
+                function
+                with parameters
+                  instance of type T 
+                returning 
+                  instance of type T 
+
+          to arguments
+                          Variable Expression: y: a pointer to function
+                  returning 
+                    nothing 
+
+
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to pointer to function
+                    returning 
+                      nothing 
+
+                pointer to function
+                    returning 
+                      nothing 
+
+              returning 
+                pointer to function
+                    returning 
+                      nothing 
+
+
+          with environment:
+            Types:
+              _0_T -> pointer to function
+                  returning 
+                    nothing 
+
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Cast of:
+                Variable Expression: z: a char 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a forall
+                  T: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type T 
+                            instance of type T 
+                          returning 
+                            instance of type T 
+
+
+                function
+                with parameters
+                  instance of type T 
+                returning 
+                  instance of type T 
+
+          to arguments
+                          Variable Expression: w: a float 
+
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+          with environment:
+            Types:
+              _0_T -> float 
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: h: a function
+                with parameters
+                  p: a pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+          to arguments
+                          Application of
+                Variable Expression: f: a forall
+                      T: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type T 
+                                instance of type T 
+                              returning 
+                                instance of type T 
+
+
+                    function
+                    with parameters
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+              to arguments
+                                  Variable Expression: y: a pointer to function
+                      returning 
+                        nothing 
+
+
+              with inferred parameters:
+                ?=?: a function
+                  with parameters
+                    pointer to pointer to function
+                        returning 
+                          nothing 
+
+                    pointer to function
+                        returning 
+                          nothing 
+
+                  returning 
+                    pointer to function
+                        returning 
+                          nothing 
+
+
+
+          with environment:
+            Types:
+              _0_T -> pointer to function
+                  returning 
+                    nothing 
+
+            Non-types:
+
+
+g2: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of f: a forall
+            T: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type T 
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+
+          function
+          with parameters
+            instance of type T 
+            instance of type T 
+          returning 
+            nothing 
+
+      Declaration of f: a forall
+            T: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type T 
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+
+            U: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type U 
+                      instance of type U 
+                    returning 
+                      instance of type U 
+
+
+          function
+          with parameters
+            instance of type T 
+            instance of type U 
+          returning 
+            nothing 
+
+      Declaration of x: a signed int 
+      Declaration of y: a float 
+      Declaration of z: a pointer to signed int 
+      Declaration of w: a pointer to float 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a forall
+                  T: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type T 
+                            instance of type T 
+                          returning 
+                            instance of type T 
+
+
+                function
+                with parameters
+                  instance of type T 
+                  instance of type T 
+                returning 
+                  nothing 
+
+          to arguments
+                          Cast of:
+                Variable Expression: x: a signed int 
+
+              to:
+                float 
+
+                          Variable Expression: y: a float 
+
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+          with environment:
+            Types:
+              _0_T -> float 
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a forall
+                  T: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type T 
+                            instance of type T 
+                          returning 
+                            instance of type T 
+
+
+                  U: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type U 
+                            instance of type U 
+                          returning 
+                            instance of type U 
+
+
+                function
+                with parameters
+                  instance of type T 
+                  instance of type U 
+                returning 
+                  nothing 
+
+          to arguments
+                          Variable Expression: z: a pointer to signed int 
+
+                          Variable Expression: w: a pointer to float 
+
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to pointer to signed int 
+                pointer to signed int 
+              returning 
+                pointer to signed int 
+
+            ?=?: a function
+              with parameters
+                pointer to pointer to float 
+                pointer to float 
+              returning 
+                pointer to float 
+
+          with environment:
+            Types:
+              _1_T -> pointer to signed int 
+              _2_U -> pointer to float 
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a forall
+                  T: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type T 
+                            instance of type T 
+                          returning 
+                            instance of type T 
+
+
+                  U: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type U 
+                            instance of type U 
+                          returning 
+                            instance of type U 
+
+
+                function
+                with parameters
+                  instance of type T 
+                  instance of type U 
+                returning 
+                  nothing 
+
+          to arguments
+                          Variable Expression: x: a signed int 
+
+                          Variable Expression: z: a pointer to signed int 
+
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: a function
+              with parameters
+                pointer to pointer to signed int 
+                pointer to signed int 
+              returning 
+                pointer to signed int 
+
+          with environment:
+            Types:
+              _1_T -> signed int 
+              _2_U -> pointer to signed int 
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Function.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Function.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Function.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,249 @@
+a: a signed int 
+a: a float 
+f: a function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: a function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: f: a function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Cast of:
+                Variable Expression: a: a signed int 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Cast of:
+            Application of
+              Variable Expression: f: a function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Variable Expression: a: a signed int 
+
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+
+p: a tuple of types
+    signed int 
+
+p: a tuple of types
+    signed int 
+    double 
+
+p: a tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: a tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: a tuple of types
+    char 
+
+q: a tuple of types
+    signed int 
+    signed int 
+
+q: a tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: a tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: a function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: r: a function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Variable Expression: p: a tuple of types
+                  signed int 
+                  signed int 
+                  signed int 
+
+
+                          Cast of:
+                Variable Expression: q: a tuple of types
+                    char 
+
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: r: a function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Cast of:
+                Tuple:
+                                      Variable Expression: q: a tuple of types
+                        char 
+
+
+                                      Variable Expression: p: a tuple of types
+                        signed int 
+                        signed int 
+                        signed int 
+
+
+
+              to:
+                signed int 
+                signed int 
+                signed int 
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: r: a function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Application of
+                Variable Expression: r: a function
+                    with parameters
+                      signed int 
+                      signed int 
+                      signed int 
+                      signed int 
+                    returning 
+                      signed int 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: p: a tuple of types
+                      signed int 
+                      signed int 
+                      signed int 
+
+
+                                  Cast of:
+                    Variable Expression: q: a tuple of types
+                        char 
+
+
+                  to:
+                    signed int 
+
+
+                          Application of
+                Variable Expression: r: a function
+                    with parameters
+                      signed int 
+                      signed int 
+                      signed int 
+                      signed int 
+                    returning 
+                      signed int 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: q: a tuple of types
+                      signed int 
+                      signed int 
+
+
+                                  Variable Expression: q: a tuple of types
+                      signed int 
+                      signed int 
+
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/InferParam.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/InferParam.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/InferParam.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,317 @@
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: a function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: a forall
+      T: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+
+      U: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type U 
+                instance of type U 
+              returning 
+                instance of type U 
+
+          f: a pointer to function
+              with parameters
+                instance of type T 
+              returning 
+                instance of type U 
+
+
+    function
+    with parameters
+      instance of type T 
+    returning 
+      instance of type U 
+
+f: a function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: a function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: a function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of a: a signed int 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: i: a function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+          to arguments
+                          Application of
+                Variable Expression: g: a forall
+                      T: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type T 
+                                instance of type T 
+                              returning 
+                                instance of type T 
+
+
+                      U: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type U 
+                                instance of type U 
+                              returning 
+                                instance of type U 
+
+                          f: a pointer to function
+                              with parameters
+                                instance of type T 
+                              returning 
+                                instance of type U 
+
+
+                    function
+                    with parameters
+                      instance of type T 
+                    returning 
+                      instance of type U 
+
+              to arguments
+                                  Variable Expression: a: a signed int 
+
+              with inferred parameters:
+                ?=?: a function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+                ?=?: a function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+                f: a function
+                  with parameters
+                    signed int 
+                  returning 
+                    float 
+
+
+          with environment:
+            Types:
+              _0_T -> signed int 
+              _1_U -> float 
+            Non-types:
+
+
+context has_f_and_j
+    with parameters
+      T: a type
+      U: a type
+
+    with members
+      f: a function
+          with parameters
+            instance of type T 
+          returning 
+            instance of type U 
+
+      j: a function
+          with parameters
+            instance of type T 
+            instance of type U 
+          returning 
+            instance of type U 
+
+
+j: a function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: a forall
+      T: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+
+      U: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type U 
+                instance of type U 
+              returning 
+                instance of type U 
+
+          f: a pointer to function
+              with parameters
+                instance of type T 
+              returning 
+                instance of type U 
+
+          j: a pointer to function
+              with parameters
+                instance of type T 
+                instance of type U 
+              returning 
+                instance of type U 
+
+
+    function
+    with parameters
+      instance of type T 
+    returning 
+      instance of type U 
+
+l: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of b: a signed int 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: i: a function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+          to arguments
+                          Application of
+                Variable Expression: k: a forall
+                      T: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type T 
+                                instance of type T 
+                              returning 
+                                instance of type T 
+
+
+                      U: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type U 
+                                instance of type U 
+                              returning 
+                                instance of type U 
+
+                          f: a pointer to function
+                              with parameters
+                                instance of type T 
+                              returning 
+                                instance of type U 
+
+                          j: a pointer to function
+                              with parameters
+                                instance of type T 
+                                instance of type U 
+                              returning 
+                                instance of type U 
+
+
+                    function
+                    with parameters
+                      instance of type T 
+                    returning 
+                      instance of type U 
+
+              to arguments
+                                  Variable Expression: b: a signed int 
+
+              with inferred parameters:
+                ?=?: a function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+                ?=?: a function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+                f: a function
+                  with parameters
+                    signed int 
+                  returning 
+                    float 
+
+                j: a function
+                  with parameters
+                    signed int 
+                    float 
+                  returning 
+                    float 
+
+
+          with environment:
+            Types:
+              _0_T -> signed int 
+              _1_U -> float 
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Members.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Members.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Members.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,666 @@
+?=?: a function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: a forall
+      DT: a incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT 
+      pointer to instance of type DT 
+    returning 
+      pointer to instance of type DT 
+
+*?: a forall
+      T: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+
+    function
+    with parameters
+      pointer to instance of type T 
+    returning 
+      lvalue instance of type T 
+
+__builtin_memcpy: a function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: a function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: a function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: a function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: a function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: a signed int 
+      a: a char 
+      a: a float 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of struct a_struct 
+      _src: a instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: a signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: a signed int 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: a char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: a char 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: a float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: a float 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union b_struct
+    with members
+      a: a pointer to signed int 
+      a: a pointer to char 
+      a: a pointer to float 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of union b_struct 
+      _src: a instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: a function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: a pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: a instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of the_struct: a instance of struct a_struct 
+      Declaration of the_struct: a instance of union b_struct 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: a: a function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                a: a char 
+              from aggregate: 
+                Variable Expression: the_struct: a instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: b: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                a: a signed int 
+              from aggregate: 
+                Variable Expression: the_struct: a instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: c: a function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                a: a pointer to signed int 
+              from aggregate: 
+                Variable Expression: the_struct: a instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: d: a function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                a: a pointer to float 
+              from aggregate: 
+                Variable Expression: the_struct: a instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of struct c_struct 
+      _src: a instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of union d_struct 
+      _src: a instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: a function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: a pointer to instance of union d_struct 
+
+                          Address of:
+                Variable Expression: _src: a instance of union d_struct 
+
+                          Sizeof Expression on: instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+g: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of x: a short unsigned int 
+      Declaration of x: a instance of struct c_struct 
+      Declaration of x: a instance of union d_struct 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: a: a function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+          to arguments
+                          Cast of:
+                Variable Expression: x: a short unsigned int 
+
+              to:
+                char 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: b: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Cast of:
+                Variable Expression: x: a short unsigned int 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: c: a function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: x: a instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: d: a function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+          to arguments
+                          Member Expression, with field: 
+                pointer to float 
+              from aggregate: 
+                Variable Expression: x: a instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+
+struct forward
+q: a pointer to instance of struct forward 
+struct forward
+    with members
+      y: a signed int 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of struct forward 
+      _src: a instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: a signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct forward 
+
+                          Member Expression, with field: 
+                y: a signed int 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+h: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      
+        Expression Statement:
+          Member Expression, with field: 
+            y: a signed int 
+          from aggregate: 
+            Application of
+              Variable Expression: *?: a forall
+                    T: a type
+                      with assertions
+                        ?=?: a pointer to function
+                            with parameters
+                              pointer to instance of type T 
+                              instance of type T 
+                            returning 
+                              instance of type T 
+
+
+                  function
+                  with parameters
+                    pointer to instance of type T 
+                  returning 
+                    lvalue instance of type T 
+
+            to arguments
+                              Variable Expression: q: a pointer to instance of struct forward 
+
+            with inferred parameters:
+              ?=?: a inline static function
+                with parameters
+                  _dst: a pointer to instance of struct forward 
+                  _src: a instance of struct forward 
+                returning 
+                  instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Misc.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Misc.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Misc.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,94 @@
+a: a signed int 
+b: a signed int 
+b: a float 
+g: a function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: a function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: a function
+    returning 
+      nothing 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Comma Expression:
+                Variable Expression: a: a signed int 
+
+                Variable Expression: b: a signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Comma Expression:
+                Comma Expression:
+                  Variable Expression: a: a signed int 
+
+                  Variable Expression: a: a signed int 
+
+                Variable Expression: b: a signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Sizeof Expression on:                 Variable Expression: a: a signed int 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Sizeof Expression on: signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/MiscError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/MiscError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/MiscError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -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: a signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: a float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: a signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: a float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: a signed int 
+
+            Variable Expression: b: a signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: a signed int 
+
+            Variable Expression: b: a float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/ResolvExpr/Expected/OccursError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/OccursError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/OccursError.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,6 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+
+...to: 
+    Name: g
+
Index: src/Tests/ResolvExpr/Expected/Operators.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Operators.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Operators.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,224 @@
+?*?: a function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): a function
+    with parameters
+      number1: a signed int 
+      number2: a signed int 
+    returning 
+      signed int 
+    with body 
+      
+        Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: a function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: a signed int 
+
+          Variable Expression: number2: a signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?+?: a function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: a signed int 
+
+?=?: a automatically generated inline static function
+    with parameters
+      _dst: a pointer to instance of struct accumulator 
+      _src: a instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?=?: a function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  total: a signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+
+                  ...to: 
+                      Variable Expression: _dst: a pointer to instance of struct accumulator 
+
+                          Member Expression, with field: 
+                total: a signed int 
+              from aggregate: 
+                Variable Expression: _src: a instance of struct accumulator 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of struct accumulator 
+
+to:
+  instance of struct accumulator 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?(): a function
+    with parameters
+      a: a instance of struct accumulator 
+      number1: a char 
+      number2: a char 
+    returning 
+      char 
+
+f: a function
+    returning 
+      nothing 
+    with body 
+      Declaration of a: a char 
+      Declaration of b: a char 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?(): a function
+                with parameters
+                  number1: a signed int 
+                  number2: a signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Cast of:
+                Variable Expression: a: a char 
+
+              to:
+                signed int 
+
+                          Cast of:
+                Variable Expression: b: a char 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?(): a function
+                with parameters
+                  number1: a signed int 
+                  number2: a signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Cast of:
+                Variable Expression: a: a char 
+
+              to:
+                signed int 
+
+                          Cast of:
+                Variable Expression: b: a char 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?+?: a function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Cast of:
+                Variable Expression: a: a char 
+
+              to:
+                signed int 
+
+                          Cast of:
+                Variable Expression: b: a char 
+
+              to:
+                signed int 
+
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of ?+?: a instance of struct accumulator 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: ?(): a function
+                with parameters
+                  a: a instance of struct accumulator 
+                  number1: a char 
+                  number2: a char 
+                returning 
+                  char 
+
+          to arguments
+                          Variable Expression: ?+?: a instance of struct accumulator 
+
+                          Variable Expression: a: a char 
+
+                          Variable Expression: b: a char 
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Quad.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Quad.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Quad.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,201 @@
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: a function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: a forall
+      T: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+          ?*?: a pointer to function
+              with parameters
+                instance of type T 
+                instance of type T 
+              returning 
+                instance of type T 
+
+
+    function
+    with parameters
+      t: a instance of type T 
+    returning 
+      instance of type T 
+    with body 
+      
+        Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: a pointer to function
+        with parameters
+          instance of type T 
+          instance of type T 
+        returning 
+          instance of type T 
+
+  to arguments
+          Variable Expression: t: a instance of type T 
+
+          Variable Expression: t: a instance of type T 
+
+
+to:
+  instance of type T 
+with environment:
+  Types:
+  Non-types:
+
+
+
+quad: a forall
+      U: a type
+        with assertions
+          ?=?: a pointer to function
+              with parameters
+                pointer to instance of type U 
+                instance of type U 
+              returning 
+                instance of type U 
+
+          square: a pointer to function
+              with parameters
+                instance of type U 
+              returning 
+                instance of type U 
+
+
+    function
+    with parameters
+      u: a instance of type U 
+    returning 
+      instance of type U 
+    with body 
+      
+        Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: square: a pointer to function
+        with parameters
+          instance of type U 
+        returning 
+          instance of type U 
+
+  to arguments
+          Application of
+        Variable Expression: square: a pointer to function
+            with parameters
+              instance of type U 
+            returning 
+              instance of type U 
+
+      to arguments
+                  Variable Expression: u: a instance of type U 
+
+
+
+to:
+  instance of type U 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: quad: a forall
+                  U: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type U 
+                            instance of type U 
+                          returning 
+                            instance of type U 
+
+                      square: a pointer to function
+                          with parameters
+                            instance of type U 
+                          returning 
+                            instance of type U 
+
+
+                function
+                with parameters
+                  u: a instance of type U 
+                returning 
+                  instance of type U 
+
+          to arguments
+                          Constant Expression: 7 (type: signed int )
+          with inferred parameters:
+            ?=?: a function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?*?: a function
+              with parameters
+                signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: a function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            square: a forall
+                T: a type
+                  with assertions
+                    ?=?: a pointer to function
+                        with parameters
+                          pointer to instance of type T 
+                          instance of type T 
+                        returning 
+                          instance of type T 
+
+                    ?*?: a pointer to function
+                        with parameters
+                          instance of type T 
+                          instance of type T 
+                        returning 
+                          instance of type T 
+
+
+              function
+              with parameters
+                t: a instance of type T 
+              returning 
+                instance of type T 
+
+          with environment:
+            Types:
+              _0_U -> signed int 
+              _1_T -> signed int 
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Rank2.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Rank2.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Rank2.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,272 @@
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: a forall
+      DT: a incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT 
+      pointer to instance of type DT 
+    returning 
+      pointer to instance of type DT 
+
+a: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of f: a forall
+            T: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type T 
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+
+          function
+          with parameters
+            instance of type T 
+          returning 
+            nothing 
+
+      Declaration of g: a function
+          with parameters
+            p: a pointer to forall
+                  U: a type
+                    with assertions
+                      ?=?: a pointer to function
+                          with parameters
+                            pointer to instance of type U 
+                            instance of type U 
+                          returning 
+                            instance of type U 
+
+
+                function
+                with parameters
+                  instance of type U 
+                returning 
+                  nothing 
+
+          returning 
+            nothing 
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  p: a pointer to forall
+                        U: a type
+                          with assertions
+                            ?=?: a pointer to function
+                                with parameters
+                                  pointer to instance of type U 
+                                  instance of type U 
+                                returning 
+                                  instance of type U 
+
+
+                      function
+                      with parameters
+                        instance of type U 
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+          to arguments
+                          Variable Expression: f: a forall
+                    T: a type
+                      with assertions
+                        ?=?: a pointer to function
+                            with parameters
+                              pointer to instance of type T 
+                              instance of type T 
+                            returning 
+                              instance of type T 
+
+
+                  function
+                  with parameters
+                    instance of type T 
+                  returning 
+                    nothing 
+
+
+          with inferred parameters:
+            ?=?: a pointer to function
+              with parameters
+                pointer to instance of type U 
+                instance of type U 
+              returning 
+                instance of type U 
+
+          with environment:
+            Types:
+              _1_T -> instance of type _0_U 
+            Non-types:
+
+
+g: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of h: a function
+          with parameters
+            null: a pointer to signed int 
+          returning 
+            nothing 
+
+      Declaration of id: a forall
+            T: a type
+              with assertions
+                ?=?: a pointer to function
+                    with parameters
+                      pointer to instance of type T 
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+
+          function
+          with parameters
+            instance of type T 
+          returning 
+            instance of type T 
+
+      Declaration of 0: a forall
+            T: a incomplete type
+          pointer to instance of type T 
+      Declaration of 0: a signed int 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: h: a function
+                with parameters
+                  null: a pointer to signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Application of
+                Variable Expression: id: a forall
+                      T: a type
+                        with assertions
+                          ?=?: a pointer to function
+                              with parameters
+                                pointer to instance of type T 
+                                instance of type T 
+                              returning 
+                                instance of type T 
+
+
+                    function
+                    with parameters
+                      instance of type T 
+                    returning 
+                      instance of type T 
+
+              to arguments
+                                  Application of
+                    Variable Expression: id: a forall
+                          T: a type
+                            with assertions
+                              ?=?: a pointer to function
+                                  with parameters
+                                    pointer to instance of type T 
+                                    instance of type T 
+                                  returning 
+                                    instance of type T 
+
+
+                        function
+                        with parameters
+                          instance of type T 
+                        returning 
+                          instance of type T 
+
+                  to arguments
+                                          Application of
+                        Variable Expression: id: a forall
+                              T: a type
+                                with assertions
+                                  ?=?: a pointer to function
+                                      with parameters
+                                        pointer to instance of type T 
+                                        instance of type T 
+                                      returning 
+                                        instance of type T 
+
+
+                            function
+                            with parameters
+                              instance of type T 
+                            returning 
+                              instance of type T 
+
+                      to arguments
+                                                  Variable Expression: 0: a forall
+                                T: a incomplete type
+                              pointer to instance of type T 
+
+                      with inferred parameters:
+                        ?=?: a forall
+                            DT: a incomplete type
+                          function
+                          with parameters
+                            pointer to pointer to instance of type DT 
+                            pointer to instance of type DT 
+                          returning 
+                            pointer to instance of type DT 
+
+
+                  with inferred parameters:
+                    ?=?: a forall
+                        DT: a incomplete type
+                      function
+                      with parameters
+                        pointer to pointer to instance of type DT 
+                        pointer to instance of type DT 
+                      returning 
+                        pointer to instance of type DT 
+
+
+              with inferred parameters:
+                ?=?: a forall
+                    DT: a incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT 
+                    pointer to instance of type DT 
+                  returning 
+                    pointer to instance of type DT 
+
+
+          with environment:
+            Types:
+              _0_T -> forall
+                    _3_T: a incomplete type
+                  pointer to instance of type _3_T 
+              _1_T -> forall
+                    _3_T: a incomplete type
+                  pointer to instance of type _3_T 
+              _2_T -> forall
+                    _3_T: a incomplete type
+                  pointer to instance of type _3_T 
+              _3_T -> signed int 
+              _5_DT -> signed int 
+              _7_DT -> signed int 
+              _9_DT -> signed int 
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/ShortCircuit.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/ShortCircuit.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/ShortCircuit.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,178 @@
+?!=?: a function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: a function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: a signed int 
+g: a function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: a function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: a function
+    with parameters
+      a: a signed int 
+    returning 
+      nothing 
+    with body 
+      Declaration of b: a signed int 
+      Declaration of c: a float 
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+          to arguments
+                          Conditional expression on: 
+                Cast of:
+                  Application of
+                    Variable Expression: ?!=?: a function
+                        with parameters
+                          signed int 
+                          signed int 
+                        returning 
+                          signed int 
+
+                  to arguments
+                                          Variable Expression: a: a signed int 
+
+                                          Variable Expression: 0: a signed int 
+
+
+                to:
+                  signed int 
+              First alternative:
+                Variable Expression: b: a signed int 
+              Second alternative:
+                Variable Expression: c: a float 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: a function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: a signed int 
+
+          Variable Expression: 0: a signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: a function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: a float 
+
+          Cast of:
+        Variable Expression: 0: a signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+      
+        Expression Statement:
+          Application of
+            Variable Expression: g: a function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+          to arguments
+                          Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: a function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: a signed int 
+
+          Variable Expression: 0: a signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: a function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: a signed int 
+
+          Variable Expression: 0: a signed int 
+
+
+to:
+  signed int 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
Index: src/Tests/ResolvExpr/Expected/Statement.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Statement.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
+++ src/Tests/ResolvExpr/Expected/Statement.tst	(revision 843054c23fcb725d2486e5e42e91b3741bc523b8)
@@ -0,0 +1,170 @@
+?=?: a function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: a function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: a signed int 
+f: a function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      Declaration of a: a signed int 
+      Declaration of struct __anonymous0
+          with members
+            b: a signed int 
+
+      Declaration of ?=?: a automatically generated inline static function
+          with parameters
+            _dst: a pointer to instance of struct __anonymous0 
+            _src: a instance of struct __anonymous0 
+          returning 
+            instance of struct __anonymous0 
+          with body 
+            
+              Expression Statement:
+                Application of
+                  Variable Expression: ?=?: a function
+                      with parameters
+                        pointer to signed int 
+                        signed int 
+                      returning 
+                        signed int 
+
+                to arguments
+                                      Address of:
+                      Member Expression, with field: 
+                        b: a signed int 
+                      from aggregate: 
+                        Applying untyped: 
+                            Name: *?
+
+                        ...to: 
+                            Variable Expression: _dst: a pointer to instance of struct __anonymous0 
+
+                                      Member Expression, with field: 
+                      b: a signed int 
+                    from aggregate: 
+                      Variable Expression: _src: a instance of struct __anonymous0 
+
+                with environment:
+                  Types:
+                  Non-types:
+
+            
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: a instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+      Declaration of a: a instance of struct __anonymous0 
+      
+        If on condition: 
+            Cast of:
+              Application of
+                Variable Expression: ?!=?: a function
+                    with parameters
+                      signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: a: a signed int 
+
+                                  Variable Expression: 0: a signed int 
+
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+        .... and branches: 
+            
+              While on condition: 
+                  Cast of:
+                    Application of
+                      Variable Expression: ?!=?: a function
+                          with parameters
+                            signed int 
+                            signed int 
+                          returning 
+                            signed int 
+
+                    to arguments
+                                              Variable Expression: a: a signed int 
+
+                                              Variable Expression: 0: a signed int 
+
+
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+              .... with body: 
+                  Declaration of b: a pointer to signed int 
+                  
+                    For Statement
+
+                      initialization: 
+
+                        Expression Statement:
+                          Variable Expression: b: a pointer to signed int 
+                          with environment:
+                            Types:
+                            Non-types:
+
+
+                      condition: 
+                        Cast of:
+                          Application of
+                            Variable Expression: ?!=?: a function
+                                with parameters
+                                  signed int 
+                                  signed int 
+                                returning 
+                                  signed int 
+
+                          to arguments
+                                                          Variable Expression: a: a signed int 
+
+                                                          Variable Expression: 0: a signed int 
+
+
+                        to:
+                          signed int 
+                        with environment:
+                          Types:
+                          Non-types:
+
+
+                      increment: 
+                        Variable Expression: b: a pointer to signed int 
+                        with environment:
+                          Types:
+                          Non-types:
+
+
+                      statement block: 
+
+
+
+
+
