EnumValueMap allows mapping of enum value keys to arbitrary values.
Keys are compared by value and recursively over their parameters. If any
parameter is not an enum value, Reflect.compare is used to compare them.
Returns the value key is bound to.
If key is not bound to any value, null is returned.
If key is null, the result is unspecified.
Iterates over the keys of this BalancedTree.
This operation is performed in-order.
Binds key to value.
If key is already bound to a value, that binding disappears.