forall(otype T, ttype Params |
  { void print(T); void print(Params); })
void print(T arg, Params rest) {
  print(arg);
  print(rest);
}
void print(const char * x) { printf("%s", x); }
void print(int x) { printf("%d", x);  }
int main() {
  print("x = ", 123, ".");
}
