Parameter MakeValuedNumberedNode.Value

type ('a, 'b) relation = ('a, 'b) Relation.t

The type of relations, should match GENERIC_MONOID.t.

type 'a t

The generic type of our values. An 'a t value is associated to each class of our union find whose representative has type 'a GENERIC_ELT.t.

val apply : 'a t -> ('a, 'b) relation -> 'b t

apply v r is the value obtained by applying relation r to value v apply should be a group action from R : GENERIC_GROUP with type ('a,'b) t = ('a,'b) relation on the value 'a t. Meaning it should verify the following:

  • apply v R.identity = v
  • apply (apply v r2) r1 = apply v (R.compose r2 r1)
val meet : 'a t -> 'a t -> 'a t

Intersection of values