functor (S : CCC->
  sig
    module S :
      sig
        type point = S.point
        val ccw :
          Delaunay.CCC.point ->
          Delaunay.CCC.point -> Delaunay.CCC.point -> bool
        val in_circle :
          Delaunay.CCC.point ->
          Delaunay.CCC.point ->
          Delaunay.CCC.point -> Delaunay.CCC.point -> bool
      end
    type triangulation
    val triangulate : S.point array -> Delaunay.Triangulation.triangulation
    val iter :
      (S.point -> S.point -> unit) ->
      Delaunay.Triangulation.triangulation -> unit
    val fold :
      (S.point -> S.point -> '-> 'a) ->
      Delaunay.Triangulation.triangulation -> '-> 'a
  end