Index: src/Tests/Expect-r/Scope.txt
===================================================================
--- src/Tests/Expect-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3706 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type u (not function type) 
+(types:
+    lvalue pointer to instance of type u (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is y
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is u
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: u: pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Variable Expression: the_t: instance of type t (not function type) 
+
+
+to:
+  instance of type t (not function type) 
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type t (not function type) 
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is y
+decl is y: instance of type t (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+  to:
+    instance of type t (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: y: instance of type t (not function type) 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to instance of type t (not function type) 
+formal type is instance of type t (not function type) 
+actual type is instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: y: instance of type t (not function type) 
+--- results are
+        pointer to instance of type t (not function type) 
+
+converting pointer to instance of type t (not function type) 
+ to pointer to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+        to arguments
+                      Variable Expression: the_t: instance of type t (not function type) 
+
+--- results are
+        instance of type t (not function type) 
+
+converting instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: y: instance of type t (not function type) 
+
+                  Application of
+            Variable Expression: u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Variable Expression: the_t: instance of type t (not function type) 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: y: instance of type t (not function type) 
+
+      Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: y: instance of type t (not function type) 
+
+          Application of
+        Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+      to arguments
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: x: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: x: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: z: char 
+
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        lvalue function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+nameExpr is some_func
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: function
+    accepting unspecified arguments
+  returning 
+    double 
+  with parameter names
+    i
+  with parameter declarations
+    i: signed int 
+  with body 
+    CompoundStmt
+              Switch on condition: Variable Expression: i: signed int 
+with environment:
+  Types:
+  Non-types:
+
+            Case Name: 0
+
+                Return Statement, returning: Name: q
+
+            Default 
+                Return Statement, returning: Name: i
+
+
+
+newExpr is Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: q: double 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 6 ): Cast of:
+  Variable Expression: i: signed int 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: y
+
+to:
+  instance of type u (not function type) 
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
