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