`module S : CCC`
`type triangulation`
`val triangulate : S.point array -> triangulation`

`triangulate a` computes the Delaunay triangulation of a set of points, given as an array `a`. If `N` is the number of points (that is `Array.length a`), then the running time is $O(N \log N)$ on the average and $O(N^2)$ on the worst-case. The space used is always $O(N)$.

`val iter : (S.point -> S.point -> unit) -> triangulation -> unit`

`iter f t` iterates over all edges of the triangulation `t`. `f u v` is called once for each undirected edge `(u,v)`.

`val fold : (S.point -> S.point -> 'a -> 'a) -> triangulation -> 'a -> 'a`
`val iter_triangles : (S.point -> S.point -> S.point -> unit) -> triangulation -> unit`