Upgraded Meta, and improved Argument to make it more generic by adding support for annotations (and making ranged arguments an annotation instead) and making is so that disjoint types can have generic types.