// farg and the argument of f should have the same type
int (*(*farg)())[];
void f(int (*(*)())[]);
// func cannot return array: void fbad(int *(*)()[]);

// garg and the argument of g should have the same type
int *(*garg[1])();
void g(int *(*[1])());
// func cannot return array: void gbad(int **(*)()[1]);


int main(){
	f(farg);
	g(garg);
	return 0;
}
