Module type UnionFind.Desc

module type Desc = sig .. end

type descriptor 
val default : descriptor
type accumulator 
val union : descriptor ->
descriptor ->
accumulator ->
descriptor * accumulator

default should be a neutral element for union. union should be commutative and associative.