 
   """
   def parse(argv, opts \\ []) when is_list(argv) and is_list(opts) do
-    config = compile_config(opts, all: true)
+    config =
+      Keyword.merge(opts, [all: true, strict: false])
+      |> compile_config()
     do_parse(argv, config, [], [], [])
   end
 

    end
  end

  defp normalize_option(<<?-, option :: binary>>, value, switches, _aliases) do
    normalize_option(get_negated(option, switches), value, switches)
  end

  defp normalize_option(option, value, switches, aliases) do
    option = get_option(option)
    if alias = aliases[option] do
      normalize_option({:default, alias}, value, switches)
    else
      {option, [:invalid], value}
    end
  end

  defp normalize_option({:negated, option}, nil, switches) do


  """
  def parse_head(argv, opts \\ []) when is_list(argv) and is_list(opts) do
    config =
      Keyword.merge(opts, [all: false, strict: false])
      |> compile_config()
    do_parse(argv, config, [], [], [])
  end

