`sig
type 'data t
val empty : 'data Crit_bit.t
val find : 'data Crit_bit.t -> string -> 'data option
val add : 'data Crit_bit.t -> key:string -> data:'data -> 'data Crit_bit.t
val remove : 'data Crit_bit.t -> string -> 'data Crit_bit.t
val iter : 'data Crit_bit.t -> f:(key:string -> data:'data -> unit) -> unit
val map : 'data Crit_bit.t -> f:('data -> 'b) -> 'b Crit_bit.t
val fold :
'data Crit_bit.t ->
init:'b -> f:(key:string -> data:'data -> 'b -> 'b) -> 'b
end`