let create ~size ~init_level =
let error msg =
failwithf "Bucket.create ~size:%s ~init_level:%s: %s"
(Sexp.to_string (C.sexp_of_t size))
(Sexp.to_string (C.sexp_of_t init_level))
msg ();
in
if C.(<) init_level C.zero then error "init_level negative";
if C.(>) init_level size then error "init_level above bucket size";
{ level = init_level; size = size }