context has_q( type T ) {
	T q( T );
};

forall( type z | has_q( z ) ) void f() {
	context has_r( type T, type U ) {
		T r( T, T (T,U) );
	};
  
	extern type x, y | has_r( x, y );
}

// Local Variables: //
// tab-width: 4 //
// End: //
