sig
  type t = AGeom.point2d
  val of_point3d : AGeom.point3d -> AGeom.Point2d.t
  val distance : AGeom.Point2d.t -> AGeom.Point2d.t -> float
  val midpoint : AGeom.Point2d.t -> AGeom.Point2d.t -> AGeom.Point2d.t
  val dot : AGeom.Point2d.t -> AGeom.Point2d.t -> float
  val rand : AGeom.Point2d.t -> AGeom.Point2d.t -> AGeom.Point2d.t
  val srand :
    Random.State.t -> AGeom.Point2d.t -> AGeom.Point2d.t -> AGeom.Point2d.t
  val to_string : AGeom.Point2d.t -> string
  val of_string : string -> AGeom.Point2d.t
  module Infix :
    sig
      val ( -|- ) : AGeom.Point2d.t -> AGeom.Point2d.t -> AGeom.Point2d.t
      val ( <=> ) : AGeom.Point2d.t -> AGeom.Point2d.t -> float
      val ( ?. ) : AGeom.Point2d.t -> AGeom.Point2d.t -> AGeom.Point2d.t
    end
end