counter[k] record (has private fields)
list-new[k] k counter(a k[]) k keyfrom-pairs[k] k counter(a (k, nat32)[]) k keyto[k] k counter(values k[]) k keyto[k] nat32[k](a k counter) k keyto[k] (k, nat32)[](a k counter) k keysubscript[k] nat32(a k counter, value k) k key~[k] k counter(a k counter, value k) k keysome[k] bool(a k counter, f bool mut((k, nat32))) k key