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