`module type CCC = sig ... end`

Delaunay triangulation is available for any CCC system in the sense of Knuth's ``Axioms and Hulls''

`module type Triangulation = sig ... end`

The result of triangulation is an abstract value of type `triangulation`. Then one can iterate over all edges of the triangulation.

`module Make (S : CCC) : Triangulation with module S = S`

Generic Delaunay triangulation

`module IntPoints : CCC with type point = int * int`

Points with integer coordinates

`module Int : Triangulation with module S = IntPoints`

Delaunay triangulation with integer coordinates

`module FloatPoints : CCC with type point = float * float`

Points with floating point coordinates

`module Float : Triangulation with module S = FloatPoints`

Delaunay triangulation with floating point coordinates