module UnionFind: functor (
Elem
:
sig
type
t
val equal : t -> t -> bool
val prefer : t -> t -> int
end
) ->
functor (
ElemSet
:
Set.S
with type elt = Elem.t
) ->
functor (
ElemTable
:
Hashtbl.S
with type key = Elem.t
) ->
sig
.. end
Parameters: |
Elem |
: |
sig type t
val equal : t -> t -> bool
val prefer : t -> t -> int
end
|
ElemSet |
: |
Set.S with type elt = Elem.t
|
ElemTable |
: |
Hashtbl.S with type key = Elem.t
|
|
val table : ElemTable.key ElemTable.t
val ranks : int ElemTable.t
val repr : ElemTable.key -> ElemTable.key
val rank : ElemTable.key -> int
val unify : ElemTable.key -> ElemTable.key -> unit
val classes : unit -> ElemSet.t list
val one_class : ElemTable.key -> ElemTable.key list
val same_class : ElemTable.key -> ElemTable.key -> bool