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:     lists:flatten(lists:reverse(Acc)).
  
  
  -spec usage_options([option_spec()]) -> string().
  %% @doc Return a string with the help message for each of the options and
  %%      arguments.
  usage_options(OptSpecList) ->
      lists:flatten(lists:reverse(usage_options_reverse(OptSpecList, []))).
  
  
negative.code:     {ok, {lists:reverse(append_default_options(OptSpecList, OptAcc)), lists:reverse(ArgAcc)}}.
  
  
  %% @doc Parse a long option, add it to the option accumulator and continue
  %%      parsing the rest of the arguments recursively.
  %%      A long option can have the following syntax:
  %%        --foo      Single option 'foo', no argument
  %%        --foo=bar  Single option 'foo', argument "bar"
  %%        --foo bar  Single option 'foo', argument "bar"
  -spec parse_option_long([option_spec()], [option()], [string()], integer(), [string()], string(), string()) ->
            {ok, {[option()], [string()]}}.
  parse_option_long(OptSpecList, OptAcc, ArgAcc, ArgPos, Args, OptStr, OptArg) ->
      case split_assigned_arg(OptArg) of
          {Long, Arg} ->
  