Weak is like the OCaml standard library module of the same name, except that it requires that the values in the weak set are heap blocks.
type 'a t
val create : len:int -> 'a t
val length : 'a t -> int
val set : 'a t -> int -> 'a Heap_block.t option -> unit
val get : 'a t -> int -> 'a Heap_block.t option
val is_some : 'a t -> int -> bool
val is_none : 'a t -> int -> bool
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t