anchor.diff:  ----
   
   === Parsing and Running
  +
   The above examples are a bit academic. A real-world application needs to be more robust, specifically:
   
   . Handle invalid user input, and report any problems to the user (potentially suggesting alternative options and subcommands for simple typos if we want to get fancy).
  
positive.code: assert parseResult.hasMatchedOption("-x");
  assert parseResult.matchedOptionValue("-x", defaultValue) == 5;
  ----
  
  == Options and Positional Parameters
  Command line arguments can be separated into _options_  and _positional parameters_. Options have a name, positional parameters are values without a name. Positional parameters often follow the options, but they may be mixed.
  
negative.code: ----
  
  === Micronaut
  Micronaut is an up-and-coming star in the world of microservices, and has strong dependency injection capabilities. It minimizes runtime reflection and instead uses annotation processing at compile time, resulting in very fast startup time and reduced memory footprint.
  
  Micronaut offers special support for using picocli to create standalone command-line applications that use and interact with services in a Microservice infrastructure with its `PicocliRunner` class. The Micronaut CLI itself is also implemented using picocli under the hood to support its subcommands like `mn create-app`, `mn create-function`, etc.
  
  [source,java]
  ----
  import io.micronaut.configuration.picocli.PicocliRunner;
  import io.micronaut.http.annotation.*;
  import io.micronaut.http.client.*;
  import javax.inject.Inject;
  
  import picocli.CommandLine.Command;
  import picocli.CommandLine.Option;
  
  @Command(name = "myMicronautApp")
  public class MyMicronautApp implements Runnable {
  
      @Client("https://api.github.com")
      @Inject RxHttpClient client;
  
      @Option(names = {"-x", "--option"}, description = "example option")
      boolean flag;
  
      public static void main(String[] args) throws Exception {
          // let Micronaut instantiate and inject services
          PicocliRunner.run(MyMicronautApp.class, args);
      }
  
      public void run() {
          // business logic here
      }
  }
  ----
  
  
  == Interactive Shell Applications
  