What about this list of arguments?

```
["a", "--non-existent=value", "b"]
```

We need to pass the value with the option to the user. So the return values from `next` could be

```
{:ok, option, value, rest}
{:error, {:value, option, value}, rest}
{:error, {:undefined, option, value | nil}, rest}
{:error, :no_option, rest}
```