int ?=?( int*, int ); forall(dtype DT) DT* ?=?( DT * *, DT* ); void a() { forall( type T ) void f( T ); void g( forall( type U ) void p( U ) ); g( f ); } void g() { void h( int *null ); forall( type T ) T id( T ); forall( dtype T ) T *0; int 0; h( id( id( id( 0 ) ) ) ); }