mut-enum-map[k, v] record mut, ~newclear[k, v] void(a (k, v) mut-enum-map) v newlist-new[k, v] (k, v) mut-enum-map(elements (k, v)[]) k enum-like, v newmake[k, v] (k, v) mut-enum-map(f v mut(k)) k enum-likesize[k, v] nat32(a (k, v) mut-enum-map)set-subscript[k, v] void(a (k, v) mut-enum-map, key k, value v) k enum-likesubscript[k, v] v(a (k, v) mut-enum-map, key k) k enum-likesome[k, v] bool(a (k, v) mut-enum-map, f bool mut((k, v))) k enum-likemap=[k, v] void(a (k, v) mut-enum-map, f v mut((k, v))) k enum-like