Index: doc/proposals/modules-gen-hdr/hello/a.src.c
===================================================================
--- doc/proposals/modules-gen-hdr/hello/a.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
+++ doc/proposals/modules-gen-hdr/hello/a.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
@@ -0,0 +1,17 @@
+#import static helper
+
+//# @
+struct a {
+    int x;
+};
+
+//# $v
+struct a glb_a = { 10 };
+
+//# $f
+void f_a( struct a p ) {
+        int printf( const char *, ... );  // scaffold
+    printf( "f_a( a{ %d } ), glb_a == { %d }\n", p.x, glb_a.x );
+    help();
+    printf( "f_a end\n" );
+}
Index: doc/proposals/modules-gen-hdr/hello/b.src.c
===================================================================
--- doc/proposals/modules-gen-hdr/hello/b.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
+++ doc/proposals/modules-gen-hdr/hello/b.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
@@ -0,0 +1,28 @@
+#import auto a
+
+//# @
+struct b {
+    struct a y;
+};
+
+//# $v
+struct a glb_ba = { 20 };
+
+//# $v
+struct b glb_bb = { { 30 } };
+
+//# $f
+void f_b( struct b p ) {
+        int printf( const char *, ... );  // scaffold
+    printf( "f_b( b{ { %d } } )\n", p.y.x );
+    printf( "\tglb_a == { %d }\n", glb_a.x);
+    printf( "\tglb_ba == { %d }\n", glb_ba.x);
+    printf( "\tglb_bb == { { %d } }\n", glb_bb.y.x );
+    glb_a.x += 1;
+    p.y.x += 1;
+    f_a( p.y );
+  #ifdef ERR1
+    help();  // reject => a's `#import static helper` not visible here
+  #endif
+    printf( "f_b end\n" );
+}
Index: doc/proposals/modules-gen-hdr/hello/c.src.c
===================================================================
--- doc/proposals/modules-gen-hdr/hello/c.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
+++ doc/proposals/modules-gen-hdr/hello/c.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
@@ -0,0 +1,48 @@
+#import auto b
+#import static helper
+
+//# @
+struct c {
+    struct b z;
+    struct a q;
+};
+
+//# $v
+struct a glb_ca = { 40 };
+
+//# $v
+struct b glb_cb = { { 50 } };
+
+//# $v
+struct c glb_cc = { { { 60 } }, { 70 } };
+
+//# $f
+void f_c( struct c p ) {
+        int printf( const char *, ... );  // scaffold
+    printf( "f_c( c{ b{ a{ %d } }, a{ %d } } )\n", p.z.y.x, p.q.x );
+    printf( "\tglb_a == a{ %d }\n", glb_a.x);
+    printf( "\tglb_ba == a{ %d }\n", glb_ba.x);
+    printf( "\tglb_bb == b{ a{ %d } }\n", glb_bb.y.x );
+    printf( "\tglb_ca == a{ %d }\n", glb_ca.x);
+    printf( "\tglb_cb == b{ a{ %d } }\n", glb_cb.y.x );
+    printf( "\tglb_cc == c{ b{ a{ %d } }, a{ %d } }\n", glb_cc.z.y.x, glb_cc.q.x );
+    glb_a.x += 1;
+    glb_ba.x += 1;
+    glb_bb.y.x += 1;
+    p.z.y.x += 1;
+    p.q.x += 1;
+    f_b( p.z );
+    f_a( p.q );
+    help();  // accept => a's `#import static helper` independent from here
+    printf( "f_c end\n" );
+}
+
+//# $f
+int main() {
+    struct a la = { 500 };
+    struct b lb = { { 600 } };
+    struct c lc = { { { 700 } }, { 800 } };
+    f_a(la);
+    f_b(lb);
+    f_c(lc);
+}
Index: doc/proposals/modules-gen-hdr/hello/helper.src.c
===================================================================
--- doc/proposals/modules-gen-hdr/hello/helper.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
+++ doc/proposals/modules-gen-hdr/hello/helper.src.c	(revision b28ce93ef6648a426d1fb594f74b51bfeda9976c)
@@ -0,0 +1,5 @@
+//# $f
+void help( void ) {
+        int printf( const char *, ... );  // scaffold
+    printf( "Help!\n" );
+}
