   A set of aliases can be given as the second argument:
 
       iex> OptionParser.parse(["-d"], aliases: [d: :debug])
-      { [debug: true], [] }
+      { [debug: true], [], [] }
 
   ## Switches
 

  * `:integer` - Parses the switch as an integer;
  * `:float`   - Parses the switch as a float;

  If a switch can't be parsed, a third element is added to the returned
  tuple with the invalid options.

  The following extra options are supported:


  end

  defp parse([], _, _switches, dict, args, invalid, true) do
    { Enum.reverse(dict), Enum.reverse(args), invalid }
  end

  defp parse(value, _, _switches, dict, _args, invalid, false) do
    { Enum.reverse(dict), value, invalid }
  end

  defp value_from_tail(["-" <> _|_] = t), do: { true, t }
