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

