int x;
typedef double y;
typedef float t;
y z;
//otype u = struct { int a; double b; };
typedef struct { int a; double b; } u;
int f( int y );
y q;
struct x { int x; };

y w( y y, u v ) {
//	otype x | { x t(u); };
	void ?{}(struct x *);
	void ^?{}(struct x *);
	extern struct x t( u );
	u u = y;
	struct x z = t(u);
}

y p;

trait has_u( otype z ) {
	z u(z);
};

forall( otype t | has_u( t ) )
y q( t the_t ) {
	t y = u( the_t );
}

t f( y p ) {
	int y;
	typedef char x;
	{
		x y;
		typedef x z;
		{
			z x;
			typedef z y;
			y z = x;
		}
		z x = y;
	}
	x q = y;
}

void some_func() {}

t g( void ) {
	typedef char x;
//	try {
		some_func();
//	} catch ( x x ) {
//		t y = x;
//	}
	x z;
}

y q( i )												/* K&R style */
	int i;
{
	switch ( i ) {
		y q = i;
	  case 0:
		return q;
	  default:
		return i;
	}
}

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