nameExpr is ?=?
decl is ?=?: automatically generated function
  with parameters
    _dst: pointer to instance of type subrange (not function type) 
    _src: instance of type subrange (not function type) 
  returning 
    instance of type subrange (not function type) 
  with body 
    CompoundStmt
              Return Statement, returning: Applying untyped: 
    Name: ?=?
...to: 
    Cast of:
      Variable Expression: _dst: pointer to instance of type subrange (not function type) 

    to:
      pointer to instance of type base_t (not function type) 
    Cast of:
      Variable Expression: _src: instance of type subrange (not function type) 

    to:
      instance of type base_t (not function type) 



newExpr is Variable Expression: ?=?: function
    with parameters
      _dst: pointer to instance of type subrange (not function type) 
      _src: instance of type subrange (not function type) 
    returning 
      instance of type subrange (not function type) 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
    with parameters
      _dst: pointer to instance of type subrange (not function type) 
      _src: instance of type subrange (not function type) 
    returning 
      instance of type subrange (not function type) 

(types:
    pointer to function
        with parameters
          _dst: pointer to instance of type subrange (not function type) 
          _src: instance of type subrange (not function type) 
        returning 
          instance of type subrange (not function type) 

)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type subrange (not function type) 
(types:
    lvalue pointer to instance of type subrange (not function type) 
)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is low
nameExpr is high
nameExpr is lbound
decl is lbound: forall
    T: type
      with assertions
        ?=?: pointer to function
            with parameters
              pointer to instance of type T (not function type) 
              instance of type T (not function type) 
            returning 
              instance of type T (not function type) 


  function
  with parameters
    v: instance of type subrange (not function type) 
      with parameters
        instance of type T (not function type) 
                  Name: low

                  Name: high


  returning 
    instance of type T (not function type) 
  with body 
    CompoundStmt
              Return Statement, returning: Name: low



newExpr is Variable Expression: lbound: forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 


    function
    with parameters
      v: instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


    returning 
      instance of type T (not function type) 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: lbound: forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 


    function
    with parameters
      v: instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


    returning 
      instance of type T (not function type) 

(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) 


        function
        with parameters
          v: instance of type subrange (not function type) 
            with parameters
              instance of type _0_T (not function type) 
                              Name: low

                              Name: high


        returning 
          instance of type _0_T (not function type) 

)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is day_of_month
decl is day_of_month: instance of type subrange (not function type) 
with parameters
  unsigned int 
      Name: 1

  constant expression 31 signed int 

newExpr is Variable Expression: day_of_month: instance of type subrange (not function type) 
  with parameters
    unsigned int 
          Name: 1

    constant expression 31 signed int 


alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
  with parameters
    unsigned int 
          Name: 1

    constant expression 31 signed int 

(types:
    lvalue instance of type subrange (not function type) 
      with parameters
        unsigned int 
                  Name: 1

        constant expression 31 signed int 

)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
findSubExprs
Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
  with parameters
    unsigned int 
          Name: 1

    constant expression 31 signed int 

(types:
    lvalue instance of type subrange (not function type) 
      with parameters
        unsigned int 
                  Name: 1

        constant expression 31 signed int 

)
Environment: 

working on alternative: 
        Cost ( 0, 0, 0 ):         Variable Expression: lbound: forall
              T: type
                with assertions
                  ?=?: pointer to function
                      with parameters
                        pointer to instance of type T (not function type) 
                        instance of type T (not function type) 
                      returning 
                        instance of type T (not function type) 


            function
            with parameters
              v: instance of type subrange (not function type) 
                with parameters
                  instance of type T (not function type) 
                                      Name: low

                                      Name: high


            returning 
              instance of type T (not function type) 

(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) 


                function
                with parameters
                  v: instance of type subrange (not function type) 
                    with parameters
                      instance of type _0_T (not function type) 
                                              Name: low

                                              Name: high


                returning 
                  instance of type _0_T (not function type) 

)
        Environment: 
formal type is instance of type subrange (not function type) 
with parameters
  instance of type _0_T (not function type) 
      Name: low

      Name: high


actual type is lvalue instance of type subrange (not function type) 
with parameters
  unsigned int 
      Name: 1

  constant expression 31 signed int 

need 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) 
(used)============= original indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
============= new indexer
===idTable===
===typeTable===
===structTable===
===enumTable===
===unionTable===
===contextTable===
inferRecursive: assertion is ?=?: 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) 

inferRecursive: candidate is ?=?: automatically generated function
  with parameters
    _dst: pointer to instance of type subrange (not function type) 
    _src: instance of type subrange (not function type) 
  returning 
    instance of type subrange (not function type) 
  with body 
    CompoundStmt
              Return Statement, returning: Applying untyped: 
    Name: ?=?
...to: 
    Cast of:
      Variable Expression: _dst: pointer to instance of type subrange (not function type) 

    to:
      pointer to instance of type base_t (not function type) 
    Cast of:
      Variable Expression: _src: instance of type subrange (not function type) 

    to:
      instance of type base_t (not function type) 



unifying 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) 
 with pointer to function
  with parameters
    _dst: pointer to instance of type subrange (not function type) 
    _src: instance of type subrange (not function type) 
  returning 
    instance of type subrange (not function type) 

success!
satisfying assertion 28 ?=?: 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) 
 with declaration 21 ?=?: automatically generated function
  with parameters
    _dst: pointer to instance of type subrange (not function type) 
    _src: instance of type subrange (not function type) 
  returning 
    instance of type subrange (not function type) 
  with body 
    CompoundStmt
              Return Statement, returning: Applying untyped: 
    Name: ?=?
...to: 
    Cast of:
      Variable Expression: _dst: pointer to instance of type subrange (not function type) 

    to:
      pointer to instance of type base_t (not function type) 
    Cast of:
      Variable Expression: _src: instance of type subrange (not function type) 

    to:
      instance of type base_t (not function type) 



inferRecursive: candidate 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) 

unifying 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) 
 with 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) 

success!
satisfying assertion 28 ?=?: 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) 
 with declaration 35 ?=?: 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) 

actual expression:
        Variable Expression: day_of_month: instance of type subrange (not function type) 
          with parameters
            unsigned int 
                          Name: 1

            constant expression 31 signed int 

--- results are
        lvalue instance of type subrange (not function type) 
          with parameters
            unsigned int 
                          Name: 1

            constant expression 31 signed int 


converting lvalue instance of type subrange (not function type) 
        with parameters
          unsigned int 
                      Name: 1

          constant expression 31 signed int 

 to instance of type subrange (not function type) 
        with parameters
          instance of type _0_T (not function type) 
                      Name: low

                      Name: high


cost is( -1, -1, 0 )

converting pointer to function
          with parameters
            _dst: pointer to instance of type subrange (not function type) 
            _src: instance of type subrange (not function type) 
          returning 
            instance of type subrange (not function type) 

 to 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) 

cost of conversion is ( 0, 0, 0 )
Case +++++++++++++
formals are:
        v: instance of type subrange (not function type) 
          with parameters
            instance of type _0_T (not function type) 
                          Name: low

                          Name: high


actuals are:
                  Cast of:
            Variable Expression: day_of_month: instance of type subrange (not function type) 
              with parameters
                unsigned int 
                                  Name: 1

                constant expression 31 signed int 


          to:
            instance of type subrange (not function type) 
              with parameters
                instance of type _0_T (not function type) 
                                  Name: low

                                  Name: high



bindings are:
        ( _0_T ) -> instance of type subrange (not function type)  (no widening)
cost of conversion is:( -1, 2, 0 )
actual expression:
        Variable Expression: day_of_month: instance of type subrange (not function type) 
          with parameters
            unsigned int 
                          Name: 1

            constant expression 31 signed int 

--- results are
        lvalue instance of type subrange (not function type) 
          with parameters
            unsigned int 
                          Name: 1

            constant expression 31 signed int 


converting lvalue instance of type subrange (not function type) 
        with parameters
          unsigned int 
                      Name: 1

          constant expression 31 signed int 

 to instance of type subrange (not function type) 
        with parameters
          instance of type _0_T (not function type) 
                      Name: low

                      Name: high


cost is( -1, -1, 0 )

converting 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 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) 

cost of conversion is ( 0, 0, 0 )
Case +++++++++++++
formals are:
        v: instance of type subrange (not function type) 
          with parameters
            instance of type _0_T (not function type) 
                          Name: low

                          Name: high


actuals are:
                  Cast of:
            Variable Expression: day_of_month: instance of type subrange (not function type) 
              with parameters
                unsigned int 
                                  Name: 1

                constant expression 31 signed int 


          to:
            instance of type subrange (not function type) 
              with parameters
                instance of type _0_T (not function type) 
                                  Name: low

                                  Name: high



bindings are:
        ( _0_T ) -> instance of type T (not function type)  (no widening)
cost of conversion is:( -1, 2, 0 )
alternatives before prune:
Cost ( -1, 2, 0 ): Application of
  Variable Expression: lbound: forall
        T: type
          with assertions
            ?=?: pointer to function
                with parameters
                  pointer to instance of type T (not function type) 
                  instance of type T (not function type) 
                returning 
                  instance of type T (not function type) 


      function
      with parameters
        v: instance of type subrange (not function type) 
          with parameters
            instance of type T (not function type) 
                          Name: low

                          Name: high


      returning 
        instance of type T (not function type) 

to arguments
      Cast of:
      Variable Expression: day_of_month: instance of type subrange (not function type) 
        with parameters
          unsigned int 
                      Name: 1

          constant expression 31 signed int 


    to:
      instance of type subrange (not function type) 
        with parameters
          instance of type _0_T (not function type) 
                      Name: low

                      Name: high



with inferred parameters:
  ?=?: function
    with parameters
      _dst: pointer to instance of type subrange (not function type) 
      _src: instance of type subrange (not function type) 
    returning 
      instance of type subrange (not function type) 

(types:
    instance of type _0_T (not function type) 
)
Environment:   ( _0_T ) -> instance of type subrange (not function type)  (no widening)


Cost ( -1, 2, 0 ): Application of
  Variable Expression: lbound: forall
        T: type
          with assertions
            ?=?: pointer to function
                with parameters
                  pointer to instance of type T (not function type) 
                  instance of type T (not function type) 
                returning 
                  instance of type T (not function type) 


      function
      with parameters
        v: instance of type subrange (not function type) 
          with parameters
            instance of type T (not function type) 
                          Name: low

                          Name: high


      returning 
        instance of type T (not function type) 

to arguments
      Cast of:
      Variable Expression: day_of_month: instance of type subrange (not function type) 
        with parameters
          unsigned int 
                      Name: 1

          constant expression 31 signed int 


    to:
      instance of type subrange (not function type) 
        with parameters
          instance of type _0_T (not function type) 
                      Name: low

                      Name: high



with inferred parameters:
  ?=?: 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:
    instance of type _0_T (not function type) 
)
Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)


there are 2 alternatives before elimination
there are 2 alternatives after elimination
nameExpr is ?!=?
nameExpr is target
decl is target: pointer to instance of type subrange (not function type) 
with parameters
  instance of type T (not function type) 
      Name: low

      Name: high


newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
  with parameters
    instance of type T (not function type) 
          Name: low

          Name: high



alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
  with parameters
    instance of type T (not function type) 
          Name: low

          Name: high


(types:
    lvalue pointer to instance of type subrange (not function type) 
      with parameters
        instance of type T (not function type) 
                  Name: low

                  Name: high


)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
nameExpr is ?!=?
nameExpr is target
decl is target: pointer to instance of type subrange (not function type) 
with parameters
  instance of type T (not function type) 
      Name: t_low

      Name: t_high


newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
  with parameters
    instance of type T (not function type) 
          Name: t_low

          Name: t_high



alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
  with parameters
    instance of type T (not function type) 
          Name: t_low

          Name: t_high


(types:
    lvalue pointer to instance of type subrange (not function type) 
      with parameters
        instance of type T (not function type) 
                  Name: t_low

                  Name: t_high


)
Environment: 

there are 1 alternatives before elimination
there are 1 alternatives after elimination
Error: No reasonable alternatives for expression Cast of:
  Variable Expression: _dst: pointer to instance of type subrange (not function type) 

to:
  pointer to instance of type base_t (not function type) 

Error: No reasonable alternatives for expression Name: low

Error: No reasonable alternatives for expression Name: high

Error: No reasonable alternatives for expression Cast of:
  Applying untyped: 
      Name: lbound
  ...to: 
      Name: day_of_month

to:
  unsigned int 

Error: No reasonable alternatives for expression Name: ?!=?

Error: No reasonable alternatives for expression Cast of:
  Name: target

to:
  instance of type subrange (not function type) 
    with parameters
      instance of type T (not function type) 
              Name: low

              Name: high



Error: No reasonable alternatives for expression Name: ?!=?

Error: No reasonable alternatives for expression Cast of:
  Name: target

to:
  instance of type subrange (not function type) 
    with parameters
      instance of type T (not function type) 
              Name: t_low

              Name: t_high



