sig
  type 'a key
  val create_key : string -> 'Structure.Key.key
  val eq_type :
    'Structure.Key.key ->
    'Structure.Key.key -> ('a, 'b) Structure.eq option
  val print : 'Structure.Key.key Pretty_utils.formatter
  val compare : 'Structure.Key.key -> 'Structure.Key.key -> int
  val equal : 'Structure.Key.key -> 'Structure.Key.key -> bool
  val hash : 'Structure.Key.key -> int
  val tag : 'Structure.Key.key -> int
end