anchor.diff:  }
   ----
   
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +fun main(args: Array<String>) {
  +    // Set up the parser
  +    val commandLine = CommandLine(Git())
  +
  +    // add subcommands programmatically (not necessary if the parent command
  +    // declaratively registers the subcommands via annotation)
  +    commandLine.addSubcommand("status",   GitStatus())
  +               .addSubcommand("commit",   GitCommit())
  +               // ...
  +
  +    // Invoke the parseArgs method to parse the arguments
  +    val parsed = commandLine.parseArgs(*args)
  +    handleParseResult(parsed)
  +}
  +----
  +
   The `CommandLine.parseArgs` method returns a `ParseResult` that can be queried to get information about
   the top-level command (the Java class invoked by `git` in this example).
   The `ParseResult.subcommand()` method returns a nested `ParseResult` if the parser found a subcommand.
   This can be recursively queried until the last nested subcommand was found and the `ParseResult.subcommand()` method returns `null`.
   
  -[source,java]
  +.Java
  +[source,java,role="primary"]
   ----
   private void handleParseResult(ParseResult parsed) {
       assert parsed.subcommand() != null : "at least 1 command and 1 subcommand found";
  
positive.code: 
  Below is an example where an inherited option is used to configure logging.
  
  [source,java]
  ----
  @Command(name = "app", subcommands = Sub.class)
  class App implements Runnable {
  
negative.code: Where `git` (actually `java picocli.Demo$Git`) is the top-level command, followed by a global option and a subcommand `status` with its own options.
  
  Setting up the parser and parsing the command line could look like this:
  
  .Java
  [source,java,role="primary"]
  ----
  public static void main(String... args) {
      // Set up the parser
  