Index: doc/rob_thesis/examples/ctor/member.c
===================================================================
--- doc/rob_thesis/examples/ctor/member.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
+++ doc/rob_thesis/examples/ctor/member.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
@@ -0,0 +1,26 @@
+struct T {
+  int x;
+};
+const int val = 12223344;
+void ?{}(T * t) {
+  if (t->x == val) printf("uh-oh, constructed twice!\n");
+  t->x = val;
+}
+
+struct S {
+  T t1, t2;
+};
+
+void ?{}(S * this) {
+  // construct both members
+}
+
+void ?{}(S * this, int x) {
+  // forward
+  ?{}(this);
+  ?{}(&this->t1);
+}
+
+int main() {
+  S s = 5;
+}
Index: doc/rob_thesis/examples/nested.c
===================================================================
--- doc/rob_thesis/examples/nested.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
+++ doc/rob_thesis/examples/nested.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
@@ -0,0 +1,8 @@
+struct S {
+  int x;
+};
+void ^?{}(S * s) { }
+
+int main() {
+  [S, [S, S]] x;
+}
Index: doc/rob_thesis/examples/tuples/named.c
===================================================================
--- doc/rob_thesis/examples/tuples/named.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
+++ doc/rob_thesis/examples/tuples/named.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
@@ -0,0 +1,6 @@
+typedef [int x, int y] Point2D;
+Point2D p1, p2;
+int main() {
+  p1.x + p1.y + p2.x + p2.y;
+  p1.0 + p1.1 + p2.0 + p2.1;  // equivalent
+}
Index: doc/rob_thesis/examples/variadic/sum1.c
===================================================================
--- doc/rob_thesis/examples/variadic/sum1.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
+++ doc/rob_thesis/examples/variadic/sum1.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
@@ -0,0 +1,8 @@
+int sum(void){ return 0; }        // (0)
+forall(ttype Params | { int sum(Params); })
+int sum(int x, Params rest) { // (1)
+  return x+sum(rest);
+}
+int main() {
+  printf("%d\n", sum(10, 20, 30, 40, 50, 60));
+}
Index: doc/rob_thesis/examples/variadic/sum2.c
===================================================================
--- doc/rob_thesis/examples/variadic/sum2.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
+++ doc/rob_thesis/examples/variadic/sum2.c	(revision af68f0aaa97e163696767618f6faf47775f97d9f)
@@ -0,0 +1,10 @@
+int sum(int x, int y){
+  return x+y;
+}
+forall(ttype Params | { int sum(int, Params); })
+int sum(int x, int y, Params rest) {
+  return sum(x+y, rest);
+}
+int main() {
+  printf("%d\n", sum(10, 20, 30, 40, 50, 60));
+}
