`val add : 'a t -> key:key -> data:'a -> unit`
`val replace : 'a t -> key:key -> data:'a -> unit`
`val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit`
`val for_all : f:(key:key -> data:'a -> bool) -> 'a t -> bool`
`val map : f:(key:key -> data:'a -> 'b) -> 'a t -> 'b t`
`val map_inplace : f:(key:key -> data:'a -> 'a) -> 'a t -> unit`
`val filter : f:('a -> bool) -> 'a t -> 'a t`
`val filter_inplace : f:('a -> bool) -> 'a t -> unit`
`val filteri : f:(key:key -> data:'a -> bool) -> 'a t -> 'a t`
`val filteri_inplace : f:(key:key -> data:'a -> bool) -> 'a t -> unit`
`val filter_map : f:(key:key -> data:'a -> 'b option) -> 'a t -> 'b t`
`val filter_map_inplace : f:(key:key -> data:'a -> 'a option) -> 'a t -> unit`
`val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b`
`val exists : f:(key:key -> data:'a -> bool) -> 'a t -> bool`
`val modify : key:key -> f:('a -> 'a) -> 'a t -> unit`
`val modify_def : default:'a -> key:key -> f:('a -> 'a) -> 'a t -> unit`
`val modify_opt : key:key -> f:('a option -> 'a option) -> 'a t -> unit`
`val merge : f:(key -> 'a option -> 'b option -> 'c option) -> left:'a t -> right:'b t -> 'c t`
`val merge_all : f:(key -> 'a list -> 'b list -> 'c list) -> left:'a t -> right:'b t -> 'c t`