sig
module HashX : Hashhe.S
module HashY : Hashhe.S
type x = HashX.key
type y = HashY.key
type t
val hashx : DHashhe.S.t -> DHashhe.S.y HashX.t
val hashy : DHashhe.S.t -> DHashhe.S.x HashY.t
val clear : DHashhe.S.t -> unit
val create : int -> DHashhe.S.t
val add : DHashhe.S.t -> DHashhe.S.x -> DHashhe.S.y -> unit
val y_of_x : DHashhe.S.t -> DHashhe.S.x -> DHashhe.S.y
val x_of_y : DHashhe.S.t -> DHashhe.S.y -> DHashhe.S.x
val removex : DHashhe.S.t -> DHashhe.S.x -> unit
val removey : DHashhe.S.t -> DHashhe.S.y -> unit
val memx : DHashhe.S.t -> DHashhe.S.x -> bool
val memy : DHashhe.S.t -> DHashhe.S.y -> bool
val iter : DHashhe.S.t -> (DHashhe.S.x -> DHashhe.S.y -> unit) -> unit
val fold :
DHashhe.S.t -> 'a -> (DHashhe.S.x -> DHashhe.S.y -> 'a -> 'a) -> 'a
val cardinal : DHashhe.S.t -> int
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
?firstbind:(unit, Format.formatter, unit) Pervasives.format ->
?sepbind:(unit, Format.formatter, unit) Pervasives.format ->
?lastbind:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> DHashhe.S.x -> unit) ->
(Format.formatter -> DHashhe.S.y -> unit) ->
Format.formatter -> DHashhe.S.t -> unit
end