int ?=?( int*, int ); float ?=?( float*, float ); double ?=?( double*, double ); forall( otype T, otype U | { U f(T); } ) U g(T); float f( int ); double f( int ); void i( float ); void h() { int a; i( g( a ) ); } context has_f_and_j( otype T, otype U ) { U f( T ); U j( T, U ); }; float j( int, float ); forall( otype T, otype U | has_f_and_j( T, U ) ) U k( T ); void l() { int b; i( k( b ) ); } // Local Variables: // // tab-width: 4 // // End: //