type OrderedMap and OrderedSet as new types rather than only constructors