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