typedef ptr {} define b { a!; } define a { a(*a a); } typedef c { b!; a(*c) {} } main() { c c = c!{}; c.a(); }