sig
  type ('a, 'b) t = ('a, 'b) Core.Weak_hashtbl.t
  val create : 'Core.Std_internal.Hashtbl.Hashable.t -> ('a, 'b) t
  val mem : ('a, 'b) t -> '-> bool
  val find : ('a, 'b) t -> '-> 'Core.Heap_block.t option
  val find_or_add :
    ('a, 'b) t ->
    '-> default:(unit -> 'Core.Heap_block.t) -> 'Core.Heap_block.t
  val remove : ('a, 'b) t -> '-> unit
  val replace : ('a, 'b) t -> key:'-> data:'Core.Heap_block.t -> unit
  val key_is_using_space : ('a, 'b) t -> '-> bool
  val reclaim_space_for_keys_with_unused_data : ('a, 'b) t -> unit
  val remove_keys_with_unused_data : [ `Do_not_use ] -> unit
  val set_run_when_unused_data : [ `Do_not_use ] -> unit
end