i agree that the current list manipulations
are clunky.
i can add options after creating the parser, though,
or so you led me to believe at an earlier point.
if parser behaved like a list, then you could have
parser.append(Option("-n", type="int", dest="num_things"))
which strikes me as not clunky and still general.