sig
  type t = float * float
  type point = Diagrams.Point.t
  val proj : 'a * '-> 'a
  val proj' : 'a * '-> 'b
  val middle : float * float -> float * float -> float * float
  val distance : float * float -> float * float -> float
  val ( + ) : float * float -> float * float -> float * float
  val ( - ) : float * float -> float * float -> float * float
  val ( / ) : float * float -> float -> float * float
end