functor (Key : Id_Datatype->
  sig
    type 'value t
    val compare :
      ('value -> 'value -> int) ->
      'value Hptmap.Shape.t -> 'value Hptmap.Shape.t -> int
    val equal : 'value Hptmap.Shape.t -> 'value Hptmap.Shape.t -> bool
    val pretty :
      'value Pretty_utils.formatter ->
      'value Hptmap.Shape.t Pretty_utils.formatter
    val hash : 'value Hptmap.Shape.t -> int
    val iter : (Key.t -> 'value -> unit) -> 'value Hptmap.Shape.t -> unit
  end