delegate void foo(int x);
[CCode(anonymous_delegate = true)]
delegate void recurse(int x, recurse r);
Posix.GlobErrorFunction glob_fun;
extern Posix.GlobErrorFunction glob_fun_ext;

struct quux {
	Posix.GlobErrorFunction glob_fun;
}

class Baz {
	public Posix.GlobErrorFunction glob_fun;
}
void bar(Posix.GlobErrorFunction glob_fun2, foo b, Posix.compar_fn_t c) {
	 glob_fun = glob_fun2;
}
void main() {
	Posix.GlobErrorFunction glob_fun3 = null;
	glob_fun3 = (s, i) => { stderr.printf("err %d: %s\n", i, s); return i;};
	Posix.compar_fn_t c = (key1, key2) => { return 0; };
	foo o = (x) => { stderr.printf("%p\n", (void*)glob_fun3);};
	var baz = new Baz();
	baz.glob_fun = glob_fun3;
}
