nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Name: f to: signed int Declaration of f: short signed int Expression Statement: Cast of: Name: f to: signed int Expression Statement: Cast of: Name: f to: pointer to function accepting unspecified arguments returning nothing Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: there are 3 alternatives before elimination there are 3 alternatives after elimination alternatives before prune: Cost ( 0, 0, 4 ): Cast of: Variable Expression: f: 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: Cast of: Variable Expression: f: char to: signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Variable Expression: f: char to: signed int with environment: Types: Non-types: Declaration of f: short signed int Expression Statement: Cast of: Name: f to: signed int Expression Statement: Cast of: Name: f to: pointer to function accepting unspecified arguments returning nothing Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double decl is f: short signed int newExpr is Variable Expression: f: short 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: short signed int (types: lvalue short signed int ) Environment: there are 4 alternatives before elimination there are 4 alternatives after elimination alternatives before prune: Cost ( 0, 0, 2 ): Cast of: Variable Expression: f: short signed int 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: Cast of: Variable Expression: f: short signed int to: signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Variable Expression: f: char to: signed int with environment: Types: Non-types: Declaration of f: short signed int Expression Statement: Cast of: Variable Expression: f: short signed int to: signed int with environment: Types: Non-types: Expression Statement: Cast of: Name: f to: pointer to function accepting unspecified arguments returning nothing Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double decl is f: short signed int newExpr is Variable Expression: f: short 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: short signed int (types: lvalue short signed int ) Environment: there are 4 alternatives before elimination there are 4 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Variable Expression: f: function accepting unspecified arguments returning nothing to: pointer to function accepting unspecified arguments returning nothing (types: pointer to function accepting unspecified arguments returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Cast of: Variable Expression: f: function accepting unspecified arguments returning nothing to: pointer to function accepting unspecified arguments returning nothing to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Variable Expression: f: char to: signed int with environment: Types: Non-types: Declaration of f: short signed int Expression Statement: Cast of: Variable Expression: f: short signed int to: signed int with environment: Types: Non-types: Expression Statement: Cast of: Variable Expression: f: function accepting unspecified arguments returning nothing to: pointer to function accepting unspecified arguments returning nothing with environment: Types: Non-types: Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double decl is f: short signed int newExpr is Variable Expression: f: short 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: short signed int (types: lvalue short signed int ) Environment: there are 4 alternatives before elimination there are 4 alternatives after elimination findSubExprs 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: short signed int (types: lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: char (types: lvalue char ) Environment: nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Variable Expression: f: char to: signed int with environment: Types: Non-types: Declaration of f: short signed int Expression Statement: Cast of: Variable Expression: f: short signed int to: signed int with environment: Types: Non-types: Expression Statement: Cast of: Variable Expression: f: function accepting unspecified arguments returning nothing to: pointer to function accepting unspecified arguments returning nothing with environment: Types: Non-types: Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double decl is f: short signed int newExpr is Variable Expression: f: short 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: short signed int (types: lvalue short signed int ) Environment: there are 4 alternatives before elimination there are 4 alternatives after elimination findSubExprs 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: short signed int (types: lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: char (types: lvalue char ) Environment: nameExpr is f decl is f: function accepting unspecified arguments returning nothing with body CompoundStmt Declaration of f: char Declaration of f: double Expression Statement: Cast of: Variable Expression: f: char to: signed int with environment: Types: Non-types: Declaration of f: short signed int Expression Statement: Cast of: Variable Expression: f: short signed int to: signed int with environment: Types: Non-types: Expression Statement: Cast of: Variable Expression: f: function accepting unspecified arguments returning nothing to: pointer to function accepting unspecified arguments returning nothing with environment: Types: Non-types: Expression Statement: Cast of: Tuple: Name: f Name: f Name: f to: long signed int long double pointer to function accepting unspecified arguments returning nothing newExpr is Variable Expression: f: function accepting unspecified arguments returning nothing decl is f: char newExpr is Variable Expression: f: char decl is f: double newExpr is Variable Expression: f: double decl is f: short signed int newExpr is Variable Expression: f: short 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: char (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: short signed int (types: lvalue short signed int ) Environment: there are 4 alternatives before elimination there are 4 alternatives after elimination findSubExprs 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: short signed int (types: lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: double (types: lvalue double ) Environment: Cost ( 0, 0, 0 ): Variable Expression: f: char (types: lvalue char ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing (types: pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue short signed int pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue double pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue char pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing (types: pointer to function accepting unspecified arguments returning nothing lvalue short signed int pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue short signed int lvalue short signed int pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue double lvalue short signed int pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue char lvalue short signed int pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing (types: pointer to function accepting unspecified arguments returning nothing lvalue double pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue short signed int lvalue double pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue double lvalue double pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue char lvalue double pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing (types: pointer to function accepting unspecified arguments returning nothing lvalue char pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue short signed int lvalue char pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue double lvalue char pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing (types: lvalue char lvalue char pointer to function accepting unspecified arguments returning nothing ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int (types: pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int (types: lvalue short signed int pointer to function accepting unspecified arguments returning nothing lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int (types: lvalue double pointer to function accepting unspecified arguments returning nothing lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int (types: lvalue char pointer to function accepting unspecified arguments returning nothing lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int Variable Expression: f: short signed int (types: pointer to function accepting unspecified arguments returning nothing lvalue short signed int lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: short signed int Variable Expression: f: short signed int (types: lvalue short signed int lvalue short signed int lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: short signed int Variable Expression: f: short signed int (types: lvalue double lvalue short signed int lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: short signed int Variable Expression: f: short signed int (types: lvalue char lvalue short signed int lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double Variable Expression: f: short signed int (types: pointer to function accepting unspecified arguments returning nothing lvalue double lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: short signed int (types: lvalue short signed int lvalue double lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: double Variable Expression: f: short signed int (types: lvalue double lvalue double lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: double Variable Expression: f: short signed int (types: lvalue char lvalue double lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char Variable Expression: f: short signed int (types: pointer to function accepting unspecified arguments returning nothing lvalue char lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: char Variable Expression: f: short signed int (types: lvalue short signed int lvalue char lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: char Variable Expression: f: short signed int (types: lvalue double lvalue char lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: char Variable Expression: f: short signed int (types: lvalue char lvalue char lvalue short signed int ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double (types: pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double (types: lvalue short signed int pointer to function accepting unspecified arguments returning nothing lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double (types: lvalue double pointer to function accepting unspecified arguments returning nothing lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double (types: lvalue char pointer to function accepting unspecified arguments returning nothing lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int Variable Expression: f: double (types: pointer to function accepting unspecified arguments returning nothing lvalue short signed int lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: short signed int Variable Expression: f: double (types: lvalue short signed int lvalue short signed int lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: short signed int Variable Expression: f: double (types: lvalue double lvalue short signed int lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: short signed int Variable Expression: f: double (types: lvalue char lvalue short signed int lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double Variable Expression: f: double (types: pointer to function accepting unspecified arguments returning nothing lvalue double lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: double (types: lvalue short signed int lvalue double lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: double Variable Expression: f: double (types: lvalue double lvalue double lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: double Variable Expression: f: double (types: lvalue char lvalue double lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char Variable Expression: f: double (types: pointer to function accepting unspecified arguments returning nothing lvalue char lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: char Variable Expression: f: double (types: lvalue short signed int lvalue char lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: char Variable Expression: f: double (types: lvalue double lvalue char lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: char Variable Expression: f: double (types: lvalue char lvalue char lvalue double ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char (types: pointer to function accepting unspecified arguments returning nothing pointer to function accepting unspecified arguments returning nothing lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char (types: lvalue short signed int pointer to function accepting unspecified arguments returning nothing lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char (types: lvalue double pointer to function accepting unspecified arguments returning nothing lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char (types: lvalue char pointer to function accepting unspecified arguments returning nothing lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: short signed int Variable Expression: f: char (types: pointer to function accepting unspecified arguments returning nothing lvalue short signed int lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: short signed int Variable Expression: f: char (types: lvalue short signed int lvalue short signed int lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: short signed int Variable Expression: f: char (types: lvalue double lvalue short signed int lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: short signed int Variable Expression: f: char (types: lvalue char lvalue short signed int lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: double Variable Expression: f: char (types: pointer to function accepting unspecified arguments returning nothing lvalue double lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: char (types: lvalue short signed int lvalue double lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: double Variable Expression: f: char (types: lvalue double lvalue double lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: double Variable Expression: f: char (types: lvalue char lvalue double lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: function accepting unspecified arguments returning nothing Variable Expression: f: char Variable Expression: f: char (types: pointer to function accepting unspecified arguments returning nothing lvalue char lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: short signed int Variable Expression: f: char Variable Expression: f: char (types: lvalue short signed int lvalue char lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: double Variable Expression: f: char Variable Expression: f: char (types: lvalue double lvalue char lvalue char ) Environment: Cost ( 0, 0, 0 ): Tuple: Variable Expression: f: char Variable Expression: f: char Variable Expression: f: char (types: lvalue char lvalue char lvalue char ) Environment: there are 64 alternatives before elimination there are 64 alternatives after elimination alternatives before prune: Cost ( 0, 0, 4 ): Cast of: Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing to: long signed int long double pointer to function accepting unspecified arguments returning nothing (types: long signed int long double pointer to function accepting unspecified arguments returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 3 ): Cast of: Cast of: Tuple: Variable Expression: f: short signed int Variable Expression: f: double Variable Expression: f: function accepting unspecified arguments returning nothing to: long signed int long double pointer to function accepting unspecified arguments returning nothing to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination char __f__c; void __f__F__(){ char __f__c; double __f__d; ((int )__f__c); short __f__s; ((int )__f__s); ((void (*)())__f__F__); ((long int )); }