 @main
 struct VariadicsGenerator: ParsableCommand {
   @Option(help: "The maximum arity of declarations to generate.")
-  var maxArity: Int
-
+  var maxArity: Int = 10
+  
+  @Flag(help: "Suppress status messages while generating.")
+  var silent: Bool = false
+
+  func log(_ message: String, terminator: String = "\n") {
+    if !silent {
+      print(message, terminator: terminator, to: &standardError)
+    }
+  }
+  
   func run() throws {
     precondition(maxArity > 1)
     precondition(maxArity < Counter.bitWidth)


      """)

    print("Generating concatenation overloads...", to: &standardError)
    for (leftArity, rightArity) in Permutations(totalArity: maxArity) {
      guard rightArity != 0 else {
        continue
      }
      print(
        "  Left arity: \(leftArity)  Right arity: \(rightArity)",
        to: &standardError)
      emitConcatenation(leftArity: leftArity, rightArity: rightArity)
    }



    output("// END AUTO-GENERATED CONTENT\n")

    log("Done!")
  }

  func tupleType(arity: Int, genericParameters: () -> String) -> String {
