Index: src/Tests/Output-v/Forall.txt
===================================================================
--- src/Tests/Output-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,731 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            returning 
+              nothing 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: temp
+                Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type P1 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    j: instance of type P2 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: total
+                Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
