sig
  type t = Cairo.point = { x : float; y : float; }
  val add :
    Mlpost.Concrete.CPoint.t ->
    Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
  val sub :
    Mlpost.Concrete.CPoint.t ->
    Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
  val opp : Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
  val mult : float -> Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
  val div : Mlpost.Concrete.CPoint.t -> float -> Mlpost.Concrete.CPoint.t
  module Infix :
    sig
      val ( +/ ) :
        Mlpost.Concrete.CPoint.t ->
        Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
      val ( -/ ) :
        Mlpost.Concrete.CPoint.t ->
        Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
      val ( */ ) :
        float -> Mlpost.Concrete.CPoint.t -> Mlpost.Concrete.CPoint.t
      val ( // ) :
        Mlpost.Concrete.CPoint.t -> float -> Mlpost.Concrete.CPoint.t
    end
  val print : Format.formatter -> Mlpost.Concrete.CPoint.t -> unit
end