sig
  type 'a key
  type t
  val create : unit -> Polytables.t
  val make_key : unit -> 'a Polytables.key
  val set : table:Polytables.t -> key:'a Polytables.key -> value:'a -> unit
  val get : table:Polytables.t -> key:'a Polytables.key -> 'a
  val remove : table:Polytables.t -> key:'a Polytables.key -> unit
  val clear : table:Polytables.t -> unit
end