nameExpr is ?*?
decl is ?*?: function
  with parameters
    signed int 
    signed int 
  returning 
    signed int 

newExpr is Variable Expression: ?*?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?*?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is number1
decl is number1: signed int 
newExpr is Variable Expression: number1: signed int 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
(types:
    lvalue signed int 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
(types:
    lvalue signed int 
)
Environment: 

nameExpr is number2
decl is number2: signed int 
newExpr is Variable Expression: number2: signed int 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
(types:
    lvalue signed int 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
(types:
    lvalue signed int 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: function
            with parameters
              signed int 
              signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  signed int 
                  signed int 
                returning 
                  signed int 

)
        Environment: 
formal type is signed int 
actual type is lvalue signed int 
formal type is signed int 
actual type is lvalue signed int 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
actual expression:
        Variable Expression: number1: signed int 
--- results are
        lvalue signed int 

converting lvalue signed int 
 to signed int 
cost is( 0, 0, 0 )
actual expression:
        Variable Expression: number2: signed int 
--- results are
        lvalue signed int 

converting lvalue signed int 
 to signed int 
cost is( 0, 0, 0 )
Case +++++++++++++
formals are:
        signed int 
        signed int 
actuals are:
                  Variable Expression: number1: signed int 

                  Variable Expression: number2: signed int 

bindings are:
cost of conversion is:( 0, 0, 0 )
alternatives before prune:
Cost ( 0, 0, 0 ): Application of
  Variable Expression: ?*?: function
      with parameters
        signed int 
        signed int 
      returning 
        signed int 

to arguments
      Variable Expression: number1: signed int 

      Variable Expression: number2: signed int 

(types:
    signed int 
)
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: ?*?: function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Variable Expression: number1: signed int 

          Variable Expression: number2: signed int 


to:
  signed int 
(types:
    signed int 
)
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 accumulator 
    _src: instance of struct accumulator 
  returning 
    instance of struct accumulator 
  with body 
    CompoundStmt
              Expression Statement:
          Applying untyped: 
              Name: ?=?
          ...to: 
              Address of:
                Member Expression, with field: 
                  total: signed int 
                from aggregate: 
                  Applying untyped: 
                      Name: *?
                  ...to: 
                      Variable Expression: _dst: pointer to instance of struct accumulator 
              Member Expression, with field: 
                total: signed int 
              from aggregate: 
                Variable Expression: _src: instance of struct accumulator 

              Return Statement, returning: Variable Expression: _src: instance of struct accumulator 



newExpr is Variable Expression: ?=?: inline static function
    with parameters
      _dst: pointer to instance of struct accumulator 
      _src: instance of struct accumulator 
    returning 
      instance of struct accumulator 


decl is ?=?: function
  with parameters
    pointer to signed int 
    signed int 
  returning 
    signed int 

newExpr is Variable Expression: ?=?: function
    with parameters
      pointer to signed int 
      signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    with parameters
      _dst: pointer to instance of struct accumulator 
      _src: instance of struct accumulator 
    returning 
      instance of struct accumulator 

(types:
    pointer to function
        with parameters
          _dst: pointer to instance of struct accumulator 
          _src: instance of struct accumulator 
        returning 
          instance of struct accumulator 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
    with parameters
      pointer to signed int 
      signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          pointer to signed int 
          signed int 
        returning 
          signed int 

)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
alternatives before prune:
Cost ( 0, 0, 0 ): Member Expression, with field: 
  total: signed int 
from aggregate: 
  Applying untyped: 
      Name: *?
  ...to: 
      Variable Expression: _dst: pointer to instance of struct accumulator 
(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: 
    total: signed int 
  from aggregate: 
    Applying untyped: 
        Name: *?
    ...to: 
        Variable Expression: _dst: pointer to instance of struct accumulator 
(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: 
    total: signed int 
  from aggregate: 
    Applying untyped: 
        Name: *?
    ...to: 
        Variable Expression: _dst: pointer to instance of struct accumulator 
(types:
    pointer to signed int 
)
Environment: 

alternatives before prune:
Cost ( 0, 0, 0 ): Member Expression, with field: 
  total: signed int 
from aggregate: 
  Variable Expression: _src: instance of struct accumulator 
(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: 
  total: signed int 
from aggregate: 
  Variable Expression: _src: instance of struct accumulator 
(types:
    lvalue signed int 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
            with parameters
              pointer to signed int 
              signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  pointer to signed int 
                  signed int 
                returning 
                  signed int 

)
        Environment: 
formal type is pointer to signed int 
actual type is pointer to signed int 
formal type is signed int 
actual type is lvalue signed int 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
            with parameters
              _dst: pointer to instance of struct accumulator 
              _src: instance of struct accumulator 
            returning 
              instance of struct accumulator 

(types:
            pointer to function
                with parameters
                  _dst: pointer to instance of struct accumulator 
                  _src: instance of struct accumulator 
                returning 
                  instance of struct accumulator 

)
        Environment: 
formal type is pointer to instance of struct accumulator 
actual type is pointer to signed int 
actual expression:
        Address of:
          Member Expression, with field: 
            total: signed int 
          from aggregate: 
            Applying untyped: 
                Name: *?
            ...to: 
                Variable Expression: _dst: pointer to instance of struct accumulator 
--- results are
        pointer to signed int 

converting pointer to signed int 
 to pointer to signed int 
cost is( 0, 0, 0 )
actual expression:
        Member Expression, with field: 
          total: signed int 
        from aggregate: 
          Variable Expression: _src: instance of struct accumulator 
--- results are
        lvalue signed int 

converting lvalue signed int 
 to signed int 
cost is( 0, 0, 0 )
Case +++++++++++++
formals are:
        pointer to signed int 
        signed int 
actuals are:
                  Address of:
            Member Expression, with field: 
              total: signed int 
            from aggregate: 
              Applying untyped: 
                  Name: *?
              ...to: 
                  Variable Expression: _dst: pointer to instance of struct accumulator 

                  Member Expression, with field: 
            total: signed int 
          from aggregate: 
            Variable Expression: _src: instance of struct accumulator 

bindings are:
cost of conversion is:( 0, 0, 0 )
alternatives before prune:
Cost ( 0, 0, 0 ): Application of
  Variable Expression: ?=?: function
      with parameters
        pointer to signed int 
        signed int 
      returning 
        signed int 

to arguments
      Address of:
      Member Expression, with field: 
        total: signed int 
      from aggregate: 
        Applying untyped: 
            Name: *?
        ...to: 
            Variable Expression: _dst: pointer to instance of struct accumulator 

      Member Expression, with field: 
      total: signed int 
    from aggregate: 
      Variable Expression: _src: instance of struct accumulator 

(types:
    signed int 
)
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: ?=?: function
        with parameters
          pointer to signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Address of:
        Member Expression, with field: 
          total: signed int 
        from aggregate: 
          Applying untyped: 
              Name: *?
          ...to: 
              Variable Expression: _dst: pointer to instance of struct accumulator 

          Member Expression, with field: 
        total: signed int 
      from aggregate: 
        Variable Expression: _src: instance of struct accumulator 


to:
  nothing
(types:
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct accumulator 
(types:
    lvalue instance of struct accumulator 
)
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 accumulator 

to:
  instance of struct accumulator 
(types:
    instance of struct accumulator 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is ?()
decl is ?(): function
  with parameters
    a: instance of struct accumulator 
    number1: char 
    number2: char 
  returning 
    char 

newExpr is Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 


decl is ?(): function
  with parameters
    number1: signed int 
    number2: signed int 
  returning 
    signed int 
  with body 
    CompoundStmt
              Return Statement, returning: Cast of:
  Application of
    Variable Expression: ?*?: function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Variable Expression: number1: signed int 

          Variable Expression: number2: signed int 


to:
  signed int 
with environment:
  Types:
  Non-types:



newExpr is Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 

(types:
    pointer to function
        with parameters
          a: instance of struct accumulator 
          number1: char 
          number2: char 
        returning 
          char 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          number1: signed int 
          number2: signed int 
        returning 
          signed int 

)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
nameExpr is a
decl is a: char 
newExpr is Variable Expression: a: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

nameExpr is b
decl is b: char 
newExpr is Variable Expression: b: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              number1: signed int 
              number2: signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  number1: signed int 
                  number2: signed int 
                returning 
                  signed int 

)
        Environment: 
formal type is signed int 
actual type is lvalue char 
formal type is signed int 
actual type is lvalue char 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              a: instance of struct accumulator 
              number1: char 
              number2: char 
            returning 
              char 

(types:
            pointer to function
                with parameters
                  a: instance of struct accumulator 
                  number1: char 
                  number2: char 
                returning 
                  char 

)
        Environment: 
formal type is instance of struct accumulator 
actual type is lvalue char 
actual expression:
        Variable Expression: a: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
actual expression:
        Variable Expression: b: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
Case +++++++++++++
formals are:
        number1: signed int 
        number2: signed int 
actuals are:
                  Cast of:
            Variable Expression: a: char 

          to:
            signed int 

                  Cast of:
            Variable Expression: b: char 

          to:
            signed int 

bindings are:
cost of conversion is:( 0, 0, 8 )
alternatives before prune:
Cost ( 0, 0, 8 ): Application of
  Variable Expression: ?(): function
      with parameters
        number1: signed int 
        number2: signed int 
      returning 
        signed int 

to arguments
      Cast of:
      Variable Expression: a: char 

    to:
      signed int 

      Cast of:
      Variable Expression: b: char 

    to:
      signed int 

(types:
    signed int 
)
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: ?(): function
        with parameters
          number1: signed int 
          number2: signed int 
        returning 
          signed int 

  to arguments
          Cast of:
        Variable Expression: a: char 

      to:
        signed int 

          Cast of:
        Variable Expression: b: char 

      to:
        signed int 


to:
  nothing
(types:
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is a
decl is a: char 
newExpr is Variable Expression: a: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is b
decl is b: char 
newExpr is Variable Expression: b: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: a: char 
(types:
            lvalue char 
)
        Environment: 
nameExpr is ?()
decl is ?(): function
  with parameters
    a: instance of struct accumulator 
    number1: char 
    number2: char 
  returning 
    char 

newExpr is Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 


decl is ?(): function
  with parameters
    number1: signed int 
    number2: signed int 
  returning 
    signed int 
  with body 
    CompoundStmt
              Return Statement, returning: Cast of:
  Application of
    Variable Expression: ?*?: function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Variable Expression: number1: signed int 

          Variable Expression: number2: signed int 


to:
  signed int 
with environment:
  Types:
  Non-types:



newExpr is Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 

(types:
    pointer to function
        with parameters
          a: instance of struct accumulator 
          number1: char 
          number2: char 
        returning 
          char 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          number1: signed int 
          number2: signed int 
        returning 
          signed int 

)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
known function ops:
        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              number1: signed int 
              number2: signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  number1: signed int 
                  number2: signed int 
                returning 
                  signed int 

)
        Environment: 

        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              a: instance of struct accumulator 
              number1: char 
              number2: char 
            returning 
              char 

(types:
            pointer to function
                with parameters
                  a: instance of struct accumulator 
                  number1: char 
                  number2: char 
                returning 
                  char 

)
        Environment: 

formal type is signed int 
actual type is lvalue char 
formal type is signed int 
actual type is lvalue char 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
formal type is instance of struct accumulator 
actual type is lvalue char 
actual expression:
        Variable Expression: a: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
actual expression:
        Variable Expression: b: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
Case +++++++++++++
formals are:
        number1: signed int 
        number2: signed int 
actuals are:
                  Cast of:
            Variable Expression: a: char 

          to:
            signed int 

                  Cast of:
            Variable Expression: b: char 

          to:
            signed int 

bindings are:
cost of conversion is:( 0, 0, 8 )
alternatives before prune:
Cost ( 0, 0, 8 ): Application of
  Variable Expression: ?(): function
      with parameters
        number1: signed int 
        number2: signed int 
      returning 
        signed int 

to arguments
      Cast of:
      Variable Expression: a: char 

    to:
      signed int 

      Cast of:
      Variable Expression: b: char 

    to:
      signed int 

(types:
    signed int 
)
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: ?(): function
        with parameters
          number1: signed int 
          number2: signed int 
        returning 
          signed int 

  to arguments
          Cast of:
        Variable Expression: a: char 

      to:
        signed int 

          Cast of:
        Variable Expression: b: char 

      to:
        signed int 


to:
  nothing
(types:
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is ?+?
decl is ?+?: function
  with parameters
    signed int 
    signed int 
  returning 
    signed int 

newExpr is Variable Expression: ?+?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is a
decl is a: char 
newExpr is Variable Expression: a: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

nameExpr is b
decl is b: char 
newExpr is Variable Expression: b: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
            with parameters
              signed int 
              signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  signed int 
                  signed int 
                returning 
                  signed int 

)
        Environment: 
formal type is signed int 
actual type is lvalue char 
formal type is signed int 
actual type is lvalue char 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
actual expression:
        Variable Expression: a: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
actual expression:
        Variable Expression: b: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
Case +++++++++++++
formals are:
        signed int 
        signed int 
actuals are:
                  Cast of:
            Variable Expression: a: char 

          to:
            signed int 

                  Cast of:
            Variable Expression: b: char 

          to:
            signed int 

bindings are:
cost of conversion is:( 0, 0, 8 )
alternatives before prune:
Cost ( 0, 0, 8 ): Application of
  Variable Expression: ?+?: function
      with parameters
        signed int 
        signed int 
      returning 
        signed int 

to arguments
      Cast of:
      Variable Expression: a: char 

    to:
      signed int 

      Cast of:
      Variable Expression: b: char 

    to:
      signed int 

(types:
    signed int 
)
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: ?+?: function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Cast of:
        Variable Expression: a: char 

      to:
        signed int 

          Cast of:
        Variable Expression: b: char 

      to:
        signed int 


to:
  nothing
(types:
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is ?+?
decl is ?+?: instance of struct accumulator 
newExpr is Variable Expression: ?+?: instance of struct accumulator 

decl is ?+?: function
  with parameters
    signed int 
    signed int 
  returning 
    signed int 

newExpr is Variable Expression: ?+?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?+?: instance of struct accumulator 
(types:
    lvalue instance of struct accumulator 
)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
nameExpr is a
decl is a: char 
newExpr is Variable Expression: a: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: a: char 
(types:
    lvalue char 
)
Environment: 

nameExpr is b
decl is b: char 
newExpr is Variable Expression: b: char 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: b: char 
(types:
    lvalue char 
)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
            with parameters
              signed int 
              signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  signed int 
                  signed int 
                returning 
                  signed int 

)
        Environment: 
formal type is signed int 
actual type is lvalue char 
formal type is signed int 
actual type is lvalue char 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: instance of struct accumulator 
(types:
            lvalue instance of struct accumulator 
)
        Environment: 
nameExpr is ?()
decl is ?(): function
  with parameters
    a: instance of struct accumulator 
    number1: char 
    number2: char 
  returning 
    char 

newExpr is Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 


decl is ?(): function
  with parameters
    number1: signed int 
    number2: signed int 
  returning 
    signed int 
  with body 
    CompoundStmt
              Return Statement, returning: Cast of:
  Application of
    Variable Expression: ?*?: function
        with parameters
          signed int 
          signed int 
        returning 
          signed int 

  to arguments
          Variable Expression: number1: signed int 

          Variable Expression: number2: signed int 


to:
  signed int 
with environment:
  Types:
  Non-types:



newExpr is Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      a: instance of struct accumulator 
      number1: char 
      number2: char 
    returning 
      char 

(types:
    pointer to function
        with parameters
          a: instance of struct accumulator 
          number1: char 
          number2: char 
        returning 
          char 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: ?(): function
    with parameters
      number1: signed int 
      number2: signed int 
    returning 
      signed int 

(types:
    pointer to function
        with parameters
          number1: signed int 
          number2: signed int 
        returning 
          signed int 

)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
known function ops:
        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              number1: signed int 
              number2: signed int 
            returning 
              signed int 

(types:
            pointer to function
                with parameters
                  number1: signed int 
                  number2: signed int 
                returning 
                  signed int 

)
        Environment: 

        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
            with parameters
              a: instance of struct accumulator 
              number1: char 
              number2: char 
            returning 
              char 

(types:
            pointer to function
                with parameters
                  a: instance of struct accumulator 
                  number1: char 
                  number2: char 
                returning 
                  char 

)
        Environment: 

formal type is signed int 
actual type is lvalue instance of struct accumulator 
formal type is instance of struct accumulator 
actual type is lvalue instance of struct accumulator 
formal type is char 
actual type is lvalue char 
formal type is char 
actual type is lvalue char 
need assertions:
============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
actual expression:
        Variable Expression: a: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
actual expression:
        Variable Expression: b: char 
--- results are
        lvalue char 

converting lvalue char 
 to signed int 
cost is( 0, 0, 4 )
Case +++++++++++++
formals are:
        signed int 
        signed int 
actuals are:
                  Cast of:
            Variable Expression: a: char 

          to:
            signed int 

                  Cast of:
            Variable Expression: b: char 

          to:
            signed int 

bindings are:
cost of conversion is:( 0, 0, 8 )
actual expression:
        Variable Expression: ?+?: instance of struct accumulator 
--- results are
        lvalue instance of struct accumulator 

converting lvalue instance of struct accumulator 
 to instance of struct accumulator 
cost is( 0, 0, 0 )
actual expression:
        Variable Expression: a: char 
--- results are
        lvalue char 

converting lvalue char 
 to char 
cost is( 0, 0, 0 )
actual expression:
        Variable Expression: b: char 
--- results are
        lvalue char 

converting lvalue char 
 to char 
cost is( 0, 0, 0 )
Case +++++++++++++
formals are:
        a: instance of struct accumulator 
        number1: char 
        number2: char 
actuals are:
                  Variable Expression: ?+?: instance of struct accumulator 

                  Variable Expression: a: char 

                  Variable Expression: b: char 

bindings are:
cost of conversion is:( 0, 0, 0 )
alternatives before prune:
Cost ( 0, 0, 8 ): Application of
  Variable Expression: ?+?: function
      with parameters
        signed int 
        signed int 
      returning 
        signed int 

to arguments
      Cast of:
      Variable Expression: a: char 

    to:
      signed int 

      Cast of:
      Variable Expression: b: char 

    to:
      signed int 

(types:
    signed int 
)
Environment: 

Cost ( 0, 0, 0 ): Application of
  Variable Expression: ?(): function
      with parameters
        a: instance of struct accumulator 
        number1: char 
        number2: char 
      returning 
        char 

to arguments
      Variable Expression: ?+?: instance of struct accumulator 

      Variable Expression: a: char 

      Variable Expression: b: char 

(types:
    char 
)
Environment: 

there are 2 alternatives before elimination
there are 2 alternatives after elimination
alternatives before prune:
Cost ( 0, 0, 1 ): Cast of:
  Application of
    Variable Expression: ?(): function
        with parameters
          a: instance of struct accumulator 
          number1: char 
          number2: char 
        returning 
          char 

  to arguments
          Variable Expression: ?+?: instance of struct accumulator 

          Variable Expression: a: char 

          Variable Expression: b: char 


to:
  nothing
(types:
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
int ___operator_multiply__Fi_ii_(int , int );
int ___operator_call__Fi_ii_(int __number1__i, int __number2__i){
    return ___operator_multiply__Fi_ii_(__number1__i, __number2__i);
}
int ___operator_add__Fi_ii_(int , int );
int ___operator_assign__Fi_Pii_(int *, int );
struct accumulator
{
    int __total__i;
};
static inline struct accumulator ___operator_assign__F12saccumulator_P12saccumulator12saccumulator_(struct accumulator *___dst__P12saccumulator, struct accumulator ___src__12saccumulator){
    ___operator_assign__Fi_Pii_((&(*___dst__P12saccumulator).__total__i), ___src__12saccumulator.__total__i);
    return ___src__12saccumulator;
}
char ___operator_call__Fc_12saccumulatorcc_(struct accumulator __a__12saccumulator, char __number1__c, char __number2__c);
void __f__F__(void){
    char __a__c;
    char __b__c;
    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
    ___operator_add__Fi_ii_(((int )__a__c), ((int )__b__c));
    struct accumulator ___operator_add__12saccumulator;
    ___operator_call__Fc_12saccumulatorcc_(___operator_add__12saccumulator, __a__c, __b__c);
}
