T: type with assertions x: function with parameters instance of type T (not function type) returning instance of type T (not function type) y: function with parameters t: instance of type T (not function type) returning instance of type T (not function type) with body CompoundStmt Declaration of t_instance: instance of type T (not function type) Return Statement, returning: Applying untyped: Name: x ...to: Name: t *?: forall T: type with assertions ?=?: 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 pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) ?++: function with parameters pointer to signed int returning signed int ?=?: function with parameters pointer to signed int signed int returning signed int ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) U: type for pointer to signed int x: function with parameters u: instance of type U (not function type) returning instance of type U (not function type) with body CompoundStmt Declaration of u_instance: instance of type U (not function type) with initializer Simple Initializer: Name: u Expression Statement: Applying untyped: Name: ?++ ...to: Address of: Applying untyped: Name: *? ...to: Name: u Return Statement, returning: Name: u break_abstraction: function with parameters u: instance of type U (not function type) returning pointer to signed int with body CompoundStmt Return Statement, returning: Name: u