`type ('a, 'b) t`
`val empty : ('a, 'b) t`
`val is_empty : ('a, 'b) t -> bool`
`val add : 'a Name.t -> 'b -> ('a, 'b) t -> ('a, 'b) t`
`val remove : 'a Name.t -> ('a, 'b) t -> ('a, 'b) t`
`val find : 'a Name.t -> ('a, 'b) t -> 'b`
`val find_opt : 'a Name.t -> ('a, 'b) t -> 'b option`
`val iter : ('a Name.t -> 'b -> unit) -> ('a, 'b) t -> unit`
`val mapi : ('a Name.t -> 'b -> 'c) -> ('a, 'b) t -> ('a, 'c) t`
`val fold : ('a Name.t -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c`
`val bindings : ('a, 'b) t -> ('a Name.t * 'b) list`
`val update_default : 'b -> ('b -> 'b) -> 'a Name.t -> ('a, 'b) t -> ('a, 'b) t`
`val mem : 'a Name.t -> ('a, 'b) t -> bool`