Currently it's so convienient to perfom map over combined ArgDef, because its type parameter is hlist
val args: ArgDef[Int :: String: HNil] = arg[Int]("a") :: arg[String]("b")
// now
args.map(hlist => //do something with hlist.head and hlist.head.head)
// should be
args.map({case (a, b) => // use plain int and string arguments)
Currently it's so convienient to perfom map over combined ArgDef, because its type parameter is hlist