Wraps a HAMT to provide a convenient map API.
Any errors are returned with exit code indicating illegal state.
The name is not persisted in state, but adorns any error messages.
Multimap stores multiple values per key in a Hamt of Amts.
The order of insertion of values for each key is retained.
Set is a Hamt with empty values for the purpose of acting as a hash set.
SetMultimap is a hamt with values that are also a hamt but are of the set variant.
This allows hash sets to be indexable by an address.