anchor.diff:    %% Option's long name is the same as the inner representation atom for
     %% consistency.
     [case Option of
  -     {Key, Short, Type, Help} ->
  +     {Key, _Keywords, Short, Type, Help} ->
          {Key, Short, atom_to_list(Key), Type, Help};
  -     {Key, Short, Type, Help, _Long} ->
  +     {Key, _Keywords, Short, Type, Help, _Long} ->
          {Key, Short, atom_to_list(Key), Type, Help}
      end || Option <- Options].
   
   -define(OPTION_KEY, 1).
  --define(OPTION_SHORT, 2).
  --define(OPTION_GETOPT_DEFAULT, 3).
  --define(OPTION_GETOPT_SHORT_HELP, 4).
  --define(OPTION_GETOPT_LONG_HELP, 5).
  +-define(OPTION_KEYWORDS, 2).
  +-define(OPTION_SHORT, 3).
  +-define(OPTION_GETOPT_DEFAULT, 4).
  +-define(OPTION_GETOPT_SHORT_HELP, 5).
  +-define(OPTION_GETOPT_LONG_HELP, 6).
  +
  +options(Keyword) ->
  +  [T || T <- options(), lists:member(Keyword, element(?OPTION_KEYWORDS, T))].
   
   options() ->
  -  [{module, $m, atom,
  +  [{module, [basic, input], $m, atom,
       "Module containing the test function",
       "Concuerror begins exploration from a test function located in the module"
       " specified by this option."}
  -  ,{test, $t, {atom, test},
  +  ,{test, [basic, input], $t, {atom, test},
       "Test function",
       "This must be a 0-arity function located in the module specified by '-m'."
       " Concuerror will start the test by spawning a process that calls this"
       " function."}
  -  ,{help, $h, atom,
  -    "Display help (can also be used as '-h <option>')",
  -    "You already know how to use this option! :-)"}
  -  ,{version, undefined, undefined,
  -    "Display version information"}
  -  ,{verbosity, $v, integer,
  +  ,{output, [basic, output], $o, {string, "concuerror_report.txt"},
  +    "Output file",
  +    "This is where Concuerror writes the results of the analysis."}
  +  ,{quiet, [basic, console], $q, undefined,
  +    "Do not write anything to stderr",
  +    "Shorthand for '--verbosity 0'."}
  +  ,{verbosity, [basic, console, advanced], $v, integer,
       io_lib:format("Sets the verbosity level (0-~w). [default: ~w]",
                     [?MAX_VERBOSITY, ?DEFAULT_VERBOSITY]),
       "Verbosity decides what is shown on stderr. Messages up to info are"
  
positive.code: 
  add_missing_getopt_defaults(Opts) ->
    Defaults =
      [case Opt of
         {Key, _Short, Default, _Help} -> {Key, Default};
         {Key, _Short, Default, _Help, _MoreHelp} -> {Key, Default}
       end || Opt <- options()],
    NoTestIfEntryPoint =
      case proplists:is_defined(entry_point, Opts) of
        true -> fun(X) -> X =/= test end;
  
negative.code:       catch
          _:_ -> to_stderr("No additional help available.~n", [])
        end,
        {Keywords, Related} = get_keywords_and_related(Tuple),
        to_stderr("Option Keywords: ~p~nRelated Options: ~p~n", [Keywords, Related]),
        to_stderr("For general help use '-h' without an argument.~n", [])
    end.
  
  cl_version() ->
    to_stderr("Concuerror v~s (~w)",[?VSN, ?GIT_SHA]).
  
  print_suffix(Keyword) ->
    to_stderr("More info & keywords about a specific option: -h <option>.~n", []),
    case Keyword =:= basic orelse Keyword =:= all of
      true -> print_exit_status_info();
      false -> ok
    end,
    print_bugs_message().
  
  print_exit_status_info() ->
    Message =
  