functor (B1 : Base) ->
functor (B2 : Base) ->
sig
type item = (B1.t, B2.t) Tools.case
type descriptor
type accumulator = unit
type state
val initial : Tools.MakeUF.state
val representative :
Tools.MakeUF.item -> Tools.MakeUF.state -> Tools.MakeUF.item
val equivalent :
Tools.MakeUF.item -> Tools.MakeUF.item -> Tools.MakeUF.state -> bool
val descriptor :
Tools.MakeUF.item -> Tools.MakeUF.state -> Tools.MakeUF.descriptor
val set :
Tools.MakeUF.item ->
Tools.MakeUF.descriptor -> Tools.MakeUF.state -> Tools.MakeUF.state
val union :
Tools.MakeUF.item ->
Tools.MakeUF.item ->
Tools.MakeUF.state ->
Tools.MakeUF.accumulator ->
Tools.MakeUF.state * Tools.MakeUF.accumulator
val domain : Tools.MakeUF.state -> Tools.MakeUF.item list
end