sig
  val pnt :
    float ->
    AGeom.Point2d.t * AGeom.Point2d.t * AGeom.Point2d.t -> AGeom.Point2d.t
  val drv :
    float ->
    AGeom.Point2d.t * AGeom.Point2d.t * AGeom.Point2d.t -> AGeom.Vector2d.t
  val rand :
    AGeom.Point2d.t ->
    AGeom.Point2d.t -> AGeom.Point2d.t * AGeom.Point2d.t * AGeom.Point2d.t
  val srand :
    Random.State.t ->
    AGeom.Point2d.t ->
    AGeom.Point2d.t -> AGeom.Point2d.t * AGeom.Point2d.t * AGeom.Point2d.t
end