anchor.diff:  
   [source,java]
   ----
  -Runnable runnable = null;
  +Callable<Object> callable = null;
   try {
  -    runnable = CommandLine.populateCommand(annotatedObject, args);
  +    callable = CommandLine.populateCommand(annotatedObject, args);
   } catch (Exception ex) {
       System.err.println(ex.getMessage());
       CommandLine.usage(annotatedObject, System.err);
  -    return;
  -}
  -runnable.run();
  +    return null;
  +}
  +return callable.call();
   ----
   
   .After
   
   [source,java]
   ----
  -CommandLine.run(new MyApp(), System.err, args);
  -----
  -
  -Note that the `CommandLine.run` convenience method cannot be used with subcommands.
  -
  -When the annotated object implements `Callable`, use the `call` method. For example:
  -[source,java]
  -----
   Object result = CommandLine.call(new MyCallable(), System.err, args);
   ----
  -The `call` method returns the result of the `Callable`, or `null` if the command line options were invalid.
  -Exceptions thrown by the `Callable` are not caught by the `CommandLine.call` method.
  +The `CommandLine.call` method returns the result of the `Callable`, or `null` if the command line options were invalid. An error message and a usage help message are printed when the command line options were invalid. Exceptions thrown from the `Callable.call` method are not caught by the `CommandLine.call` method.
  +
  +
  +When the annotated object implements `Runnable`, use the `run` method. For example:
  +[source,java]
  +----
  +CommandLine.run(new MyRunnable(), System.err, args);
  +----
  +
  +CAUTION: Note that the `CommandLine.call` and `CommandLine.run` convenience methods cannot be used with subcommands.
  +
   
   === Boolean Parameters
   By default the value of a boolean field is toggled to its logical negative when the field's option is specified on the command line.
  
positive.code: 
  [source,bash]
  ----
  alias git='java -Dpicocli.trace=DEBUG -cp picocli-all.jar picocli.Demo$Git'
  git --git-dir=/home/rpopma/picocli commit -m "Fixed typos" -- src1.java src2.java src3.java
  unalias git
  ----
  
negative.code: [source,java]
  ----
  class DoubleDashDemo {
      @Option(names = "-v")     boolean verbose;
      @Option(names = "-files") List<String> files;
      @Parameters               List<String> params;
  }
  ----
  
  The `--` clarifies which of the arguments are positional parameters:
  [source,java]
  ----
  String[] args = { "-v", "--", "-files", "file1", "file2" };
  DoubleDashDemo demo = new DoubleDashDemo();
  new CommandLine(demo).parse(args);
  
  assert demo.verbose;
  assert demo.files == null;
  assert demo.params.equals(Arrays.asList("-files", "file1", "file2"));
  ----
  
  
  