// "cfa-cpp -nx Abstype.c" type T | { T x( T ); }; T y( T t ) { T t_instance; return x( t ); } forall(type T) lvalue T *?( T* ); int ?++( int *); int ?=?( int*, int ); forall(dtype DT) DT* ?=?( DT **, DT* ); type U = int*; U x( U u ) { U u_instance = u; (*u)++; return u; } int *break_abstraction( U u ) { return u; }