       value_in_tail?(t) ->
         [h | t] = t
         {h, kinds, t}
-      kinds == [] and strict ->
+      kinds == [] and strict? ->
         {nil, kinds, t}
       kinds == [] ->
         {true, kinds, t}

    {option, List.wrap(switches[option]), value}
  end

  defp normalize_value(nil, kinds, t, strict) do
    cond do
      :boolean in kinds ->
        {true, kinds, t}

    {Enum.reverse(opts), Enum.reverse(args), Enum.reverse(invalid)}
  end

  defp do_parse(argv, {aliases, switches, strict?} = config, opts, args, invalid, all?) do
    case next(argv, aliases, switches, strict?) do
      {:ok, option, value, rest} ->
        # the option exists and it was successfully parsed
        kinds = List.wrap Keyword.get(switches, option)
