       ** (OptionParser.ParseError) 1 error found!
       --unknown : Unknown option
 
-      iex> OptionParser.parse!(["-l", "xyz", "-f", "bar"], switches: [limit: :integer, foo: :integer], aliases: [l: :limit, f: :foo])
+      iex> OptionParser.parse!(["-l", "xyz", "-f", "bar"],
+      ...>                     switches: [limit: :integer, foo: :integer], aliases: [l: :limit, f: :foo])
       ** (OptionParser.ParseError) 2 errors found!
       -l : Expected type integer, got "xyz"
       -f : Expected type integer, got "bar"

    "#{total} #{error} found!#{info}"
  end

  defp format_error({option, nil}, _, _) do
    "\n#{option} : Unknown option"
  end

  defp format_error({option, value}, opts, types) do
    option_key = option |> String.lstrip(?-) |> get_option()

    type =
      if option_alias = opts[:aliases][option_key] do
        types[option_alias]
      else
        types[option_key]
      end

    "\n#{option} : Expected type #{type}, got #{inspect value}"
  end
end

      ** (OptionParser.ParseError) 1 error found!
      --number : Expected type integer, got "lib"

      iex> OptionParser.parse_head!(["--verbose", "--source", "lib", "test/enum_test.exs", "--unlock"],
      ...>                          strict: [verbose: :integer, source: :integer])
      ** (OptionParser.ParseError) 2 errors found!
      --verbose : Missing argument of type integer
      --source : Expected type integer, got "lib"
  """
  @spec parse_head!(argv, options) :: {parsed, argv, errors} | no_return
