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