anchor.diff:          case Long of
               undefined ->
                   case Short of
  -                    % Neither short nor long form (non-option argument).
  +                    %% Neither short nor long form (non-option argument).
                       undefined ->
                           [$<, atom_to_list(Name), $>];
  -                    % Only short form.
  +                    %% Only short form.
                       _ ->
                           [$-, Short]
                   end;
               _ ->
                   case Short of
  -                    % Only long form.
  +                    %% Only long form.
                       undefined ->
                           [$-, $- | Long];
  -                    % Both short and long form.
  +                    %% Both short and long form.
                       _ ->
                           [$-, Short, $,, $\s, $-, $- | Long]
                   end
  
positive.code: 
  
  %% @doc Convert an argument string to its corresponding data type.
  -spec to_type(arg_type(), string()) -> arg_value().
  to_type(binary, Arg) ->
      list_to_binary(Arg);
  to_type(atom, Arg) ->
  
negative.code:     split_assigned_arg(OptStr, Tail, [Char | Acc]);
  split_assigned_arg(OptStr, [], _Acc) ->
      OptStr.
  
  
  %% @doc Retrieve the argument for an option from the next string in the list of
  %%      command-line parameters or set the value of the argument from the argument
  %%      specification (for boolean and integer arguments), if possible.
  parse_long_option_next_arg(OptSpecList, OptAcc, ArgAcc, ArgPos, Args, {Name, _Short, _Long, ArgSpec, _Help} = OptSpec) ->
      ArgSpecType = arg_spec_type(ArgSpec),
      case Args =:= [] orelse is_implicit_arg(ArgSpecType, hd(Args)) of
          true ->
              parse(OptSpecList, add_option_with_implicit_arg(OptSpec, OptAcc), ArgAcc, ArgPos, Args);
          false ->
              [Arg | Tail] = Args,
              try
                  parse(OptSpecList, [{Name, to_type(ArgSpecType, Arg)} | OptAcc], ArgAcc, ArgPos, Tail)
              catch
                  error:_ ->
                      throw({error, {invalid_option_arg, {Name, Arg}}})
              end
      end.
  
  
  %% @doc Parse a short option, add it to the option accumulator and continue
  