anchor.diff:  starting with `0x`, `0X` or `#` are interpreted as hexadecimal numbers, numbers starting with `0` are interpreted
   as octal numbers, and otherwise the number is interpreted as a decimal number.
   
  -Java 8-style lambdas:
  -[source,java]
  +.Java 8
  +[source,java,role="primary"]
   ----
   new CommandLine(obj)
  -        .registerConverter(Byte.class,    s -> Byte::decode)
  -        .registerConverter(Byte.TYPE,     s -> Byte::decode)
  -        .registerConverter(Short.class,   s -> Short::decode)
  -        .registerConverter(Short.TYPE,    s -> Short::decode)
  -        .registerConverter(Integer.class, s -> Integer::decode)
  -        .registerConverter(Integer.TYPE,  s -> Integer::decode)
  -        .registerConverter(Long.class,    s -> Long::decode)
  -        .registerConverter(Long.TYPE,     s -> Long::decode);
  -----
  -
  -In Java 5:
  -[source,java]
  +        .registerConverter(Byte.class,    Byte::decode)
  +        .registerConverter(Byte.TYPE,     Byte::decode)
  +        .registerConverter(Short.class,   Short::decode)
  +        .registerConverter(Short.TYPE,    Short::decode)
  +        .registerConverter(Integer.class, Integer::decode)
  +        .registerConverter(Integer.TYPE,  Integer::decode)
  +        .registerConverter(Long.class,    Long::decode)
  +        .registerConverter(Long.TYPE,     Long::decode);
  +----
  +
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +CommandLine(obj)
  +        .registerConverter(Byte::class.java,     java.lang.Byte::decode)
  +        .registerConverter(java.lang.Byte.TYPE,  java.lang.Byte::decode)
  +        .registerConverter(Short::class.java,    java.lang.Short::decode)
  +        .registerConverter(java.lang.Short.TYPE, java.lang.Short::decode)
  +        .registerConverter(Int::class.java,      Integer::decode)
  +        .registerConverter(Integer.TYPE,         Integer::decode)
  +        .registerConverter(Long::class.java,     java.lang.Long::decode)
  +        .registerConverter(java.lang.Long.TYPE,  java.lang.Long::decode)
  +----
  +
  +.Java 5
  +[source,java,role="primary"]
   ----
   ITypeConverter<Integer> intConverter = new ITypeConverter<Integer>() {
       public Integer convert(String s) {
  
positive.code: 
  [#option-parameters-methods]
  === `@Option` and `@Parameters` Methods
  From version 3.2, `@Option` and `@Parameters` annotations can be added to methods as well as fields of a class.
  
  For concrete classes, annotate "setter" methods (methods that accept a parameter) and when the option is specified on the command line, picocli will invoke the method with the value specified on the command line, converted to the type of the method parameter.
  
  
negative.code: }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  @Command
  class InjectSpecExample : Runnable {
      @Spec lateinit var commandSpec: CommandSpec
      //...
  
      override fun run() {
          // do something with the injected spec
          println("My full name is ${commandSpec.qualifiedName()}")
      }
  }
  ----
  
  [#spec-mixee-annotation]
  ==== `@Spec(MIXEE)` Annotation
  As of picocli 4.3, the `@Spec` annotation has a `value` element.
  The value is `Spec.Target.SELF` by default, meaning that the `CommandSpec` of the enclosing class is injected into the `@Spec`-annotated field.
  
  For classes that are used as a <<Mixins,mixin>>, there is another value that may be useful.
  