Module type Parameters.SIMPLE_GENERIC_GROUP

A (possibly non-commutative) group structure, used to represent relations.

@assumes that any module G implementing this should verify the axioms of a group:

Note: This isn't the "simple group" mathematical concept, this is a simple type representing a "group".

type ('a, 'b) t
val compose : ('b, 'c) t -> ('a, 'b) t -> ('a, 'c) t
val inverse : ('a, 'b) t -> ('b, 'a) t
val identity : ('a, 'a) t