let make ~size ~init_level =
      let error msg =
        failwithf "Bucket.make ~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 }