// section 6.9.1

typedef int F(void);

F f, g;

int f(void) {return 0;}
int g() {return 0;}
F *e(void) {return f;}
F *((e))(void);
int (*fp)(void);
F *fp;

extern int max(int a, int b)
{
	return a > b ? a : b;
}

extern int min(a, b)
int a, b;
{
	return a < b ? a : b;
}

void q(int (*funcp)(void)) {
	(*funcp)();
	funcp();
}

void r(int func(void)) {
	(*func)();
	func();
	q(func);
}

