sig
type point
type 'a state
val init : unit -> 'a PersistentUnionFind.state
val create :
'a ->
'a PersistentUnionFind.state ->
PersistentUnionFind.point * 'a PersistentUnionFind.state
val same :
PersistentUnionFind.point ->
PersistentUnionFind.point -> 'a PersistentUnionFind.state -> bool
val union :
PersistentUnionFind.point ->
PersistentUnionFind.point ->
'a PersistentUnionFind.state -> 'a PersistentUnionFind.state
val find : PersistentUnionFind.point -> 'a PersistentUnionFind.state -> 'a
val update :
('a -> 'a) ->
PersistentUnionFind.point ->
'a PersistentUnionFind.state -> 'a PersistentUnionFind.state
val union_computed :
('a -> 'a -> 'a) ->
PersistentUnionFind.point ->
PersistentUnionFind.point ->
'a PersistentUnionFind.state -> 'a PersistentUnionFind.state
val iter : ('a -> unit) -> 'a PersistentUnionFind.state -> unit
val fold :
('acc -> PersistentUnionFind.point -> 'a -> 'acc) ->
'acc -> 'a PersistentUnionFind.state -> 'acc
val compare : PersistentUnionFind.point -> PersistentUnionFind.point -> int
val repr :
PersistentUnionFind.point ->
'a PersistentUnionFind.state -> PersistentUnionFind.point
val valid :
PersistentUnionFind.point -> 'a PersistentUnionFind.state -> bool
end