sig
  type 'a t
  type key = c_state
  type dimension = int
  val create : (dimension, 'a t) Int_storage.unary
  val create_biggest_key : (key, 'a t) Int_storage.unary
  val expand_and_copy : ('a t, dimension, 'a t) Int_storage.binary
  val init :
    (dimension, (key, 'a) Int_storage.unary, 'a t) Int_storage.binary
  val set : (key, 'a, 'a t, 'a t) Int_storage.ternary
  val free : (key, 'a t, 'a t) Int_storage.binary
  val get : (key, 'a t, 'a option) Int_storage.binary
  val unsafe_get : (key, 'a t, 'a option) Int_storage.binary
  val dimension : ('a t, dimension) Int_storage.unary
  val print :
    ('Int_storage.unary_no_output, 'a t) Int_storage.binary_no_output
  val key_list : ('a t, key list) Int_storage.unary
  val iter :
    ((key, 'a) Int_storage.binary_no_output, 'a t)
    Int_storage.binary_no_output
  val fold_with_interruption :
    ((key, 'a, 'b, 'b) Int_storage.ternary, 'a t, 'b, 'b) Int_storage.ternary
  val fold :
    ((key, 'a, 'b, 'b) Int_storage.ternary, 'a t, 'b, 'b) Int_storage.ternary
  val fold2_common :
    ((key, 'a, 'b, 'c, 'c) Int_storage.quaternary, 'a t, 'b t, 'c, 'c)
    Int_storage.quaternary
  val free_all : ('a t, 'a t) Int_storage.unary
end