anchor.diff:      end.
   
   
  +%% @doc Retrieve the data type form an argument specification.
   -spec arg_spec_type(arg_spec()) -> arg_type() | undefined.
  -%% @doc Retrieve the data type form an argument specification.
   arg_spec_type({Type, _DefaultArg}) ->
       Type;
   arg_spec_type(Type) when is_atom(Type) ->
       Type.
   
   
  +%% @doc Convert an argument string to its corresponding data type.
   -spec to_type(atom(), string()) -> arg_value().
  -%% @doc Convert an argument string to its corresponding data type.
   to_type(binary, Arg) ->
       list_to_binary(Arg);
   to_type(atom, Arg) ->
  
positive.code:                   }.
  
  
  -spec parse([option_spec()], string() | [string()]) -> {ok, {[option()], [string()]}} | {error, {Reason :: atom(), Data :: any()}}.
  %%--------------------------------------------------------------------
  %% @spec parse(OptSpecList::[option_spec()], Args::string() | [string()]) -> [option()].
  %% @doc  Parse the command line options and arguments returning a list of tuples
  %%       and/or atoms using the Erlang convention for sending options to a
  %%       function.
  %%--------------------------------------------------------------------
  parse(OptSpecList, CmdLine) ->
      try
          Args = if
  
negative.code: 
  
  -spec parse([option_spec()], [option()], [string()], integer(), [string()]) ->
      {ok, {[option()], [string()]}}.
  %% Process the option terminator.
  parse(OptSpecList, OptAcc, ArgAcc, _ArgPos, ["--" | Tail]) ->
      % Any argument present after the terminator is not considered an option.
  