nameExpr is f
decl is f: function
    accepting unspecified arguments
  returning 
    nothing 
  with body 
    CompoundStmt
      Declaration of f: signed int 
      Declaration of f: double 
              Expression Statement:
          Cast of:
            Name: f

          to:
            char 

              Expression Statement:
          Cast of:
            Name: f

          to:
            pointer to function
                  accepting unspecified arguments
                returning 
                  signed int 



newExpr is Variable Expression: f: function
      accepting unspecified arguments
    returning 
      nothing 


decl is f: double 
newExpr is Variable Expression: f: double 

decl is f: signed int 
newExpr is Variable Expression: f: signed int 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: f: function
      accepting unspecified arguments
    returning 
      nothing 

(types:
    pointer to function
          accepting unspecified arguments
        returning 
          nothing 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: f: double 
(types:
    lvalue double 
)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
(types:
    lvalue signed int 
)
Environment: 

there are 3 alternatives before elimination
there are 3 alternatives after elimination
alternatives before prune:
Cost ( 1, 0, 0 ): Cast of:
  Variable Expression: f: signed int 

to:
  char 
(types:
    char 
)
Environment: 

Cost ( 1, 0, 0 ): Cast of:
  Variable Expression: f: double 

to:
  char 
(types:
    char 
)
Environment: 

marking ambiguous
there are 1 alternatives before elimination
nameExpr is f
decl is f: function
    accepting unspecified arguments
  returning 
    nothing 
  with body 
    CompoundStmt
      Declaration of f: signed int 
      Declaration of f: double 
              Expression Statement:
          Cast of:
            Name: f

          to:
            char 

              Expression Statement:
          Cast of:
            Name: f

          to:
            pointer to function
                  accepting unspecified arguments
                returning 
                  signed int 



newExpr is Variable Expression: f: function
      accepting unspecified arguments
    returning 
      nothing 


decl is f: double 
newExpr is Variable Expression: f: double 

decl is f: signed int 
newExpr is Variable Expression: f: signed int 

alternatives before prune:
Cost ( 0, 0, 0 ): Variable Expression: f: function
      accepting unspecified arguments
    returning 
      nothing 

(types:
    pointer to function
          accepting unspecified arguments
        returning 
          nothing 

)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: f: double 
(types:
    lvalue double 
)
Environment: 

Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
(types:
    lvalue signed int 
)
Environment: 

there are 3 alternatives before elimination
there are 3 alternatives after elimination
Error: Can't choose between alternatives for expression Cast of:
  Name: f

to:
  char 
Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
          Variable Expression: f: signed int 

        to:
          char 
(types:
            char 
)
        Environment: 

        Cost ( 1, 0, 0 ):         Cast of:
          Variable Expression: f: double 

        to:
          char 
(types:
            char 
)
        Environment: 


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

to:
  pointer to function
        accepting unspecified arguments
      returning 
        signed int 


