Declarative argument parsing

A proof of concept on how one could build an argument parsing scheme simply by declaring a discriminated union.