OptionParser alias behavior

Ah, that might explain it. So the module seems to implement that convention as well.

iex(48)> args = ["-co", "foo"]
["-co", "foo"]
iex(49)> {switches, _, _} = OptionParser.parse(
...(49)>       args,
...(49)>       switches: [
...(49)>         debug: :boolean,
...(49)>         config_override: :string
...(49)>       ],
...(49)>       aliases: [
...(49)>         o: :config_override
...(49)>       ]
...(49)>     )
{[config_override: "foo"], [], [{"-c", nil}]}

As you said, -c is ignored.