anchor.diff:      end.
       
   
  --spec find_non_option_arg([option_spec()], integer()) -> {value, option_spec()} | false.
   %% @doc Find the option for the discrete argument in position specified in the
   %%      Pos argument.
  +-spec find_non_option_arg([option_spec()], integer()) -> {value, option_spec()} | false.
   find_non_option_arg([{_Name, undefined, undefined, _ArgSpec, _Help} = OptSpec | _Tail], 0) ->
        {value, OptSpec};
   find_non_option_arg([{_Name, undefined, undefined, _ArgSpec, _Help} | Tail], Pos) ->
  
positive.code: -define(IS_OPT_SPEC(Opt), (is_tuple(Opt) andalso (size(Opt) =:= ?OPT_HELP))).
  
  
  %% @type arg_type() = 'atom' | 'binary' | 'bool' | 'float' | 'integer' | 'string'.
  %% Atom indicating the data type that an argument can be converted to.
  -type arg_type() :: 'atom' | 'binary' | 'boolean' | 'float' | 'integer' | 'string'.
  %% @type arg_value() = atom() | binary() | bool() | float() | integer() | string().
  %% Data type that an argument can be converted to.
  -type arg_value() :: atom() | binary() | boolean() | float() | integer() | string().
  %% @type arg_spec() = arg_type() | {arg_type(), arg_value()} | undefined.
  %% Argument specification.
  -type arg_spec() :: arg_type() | {arg_type(), arg_value()} | undefined.
  %% @type option() = atom() | {atom(), arg_value()}. Option type and optional default argument.
  -type option() :: atom() | {atom(), arg_value()}.
  %% @type option_spec() = #option{}. Command line option specification.
  -type option_spec() :: {
                     Name    :: atom(),
                     Short   :: char() | undefined,
  
negative.code:     end.
  
  
  %% @doc Split an option string that may contain an option with its argument
  %%      separated by an equal ('=') character (e.g. "port=1000").
  -spec split_assigned_arg(string()) -> {Name :: string(), Arg :: string()} | string().
  split_assigned_arg(OptStr) ->
      split_assigned_arg(OptStr, OptStr, []).
  
  