#import auto & egg //# @ struct chicken { struct egg * hatchedFrom; }; //# $f void ctor_chicken( struct chicken * this, struct egg * hatchedFrom ) { // probably autogen this->hatchedFrom = hatchedFrom; // ctor_pointer$ } //# $f void live( struct chicken * this ) { int printf( const char *, ... ); // scaffold void exit( int ); // scaffold static int calls = 0; if ((calls += 1) > 10) exit(0); printf( "chicken %p hatched from egg %p\n", this, this->hatchedFrom ); struct egg laid; // not a pointer ctor_egg( & laid, this ); hatch( & laid ); }