sig
  type t = Mlpost.Signature.point
  val pt : Mlpost.Num.t * Mlpost.Num.t -> Mlpost.Point.t
  val dir : float -> Mlpost.Point.t
  val up : Mlpost.Point.t
  val down : Mlpost.Point.t
  val left : Mlpost.Point.t
  val right : Mlpost.Point.t
  val origin : Mlpost.Point.t
  val length : Mlpost.Point.t -> Mlpost.Num.t
  val xpart : Mlpost.Point.t -> Mlpost.Num.t
  val ypart : Mlpost.Point.t -> Mlpost.Num.t
  val transform : Mlpost.Transform.t -> Mlpost.Point.t -> Mlpost.Point.t
  val segment : float -> Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.Point.t
  val add : Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.Point.t
  val shift : Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.Point.t
  val sub : Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.Point.t
  val mult : Mlpost.Num.t -> Mlpost.Point.t -> Mlpost.Point.t
  val scale : Mlpost.Num.t -> Mlpost.Point.t -> Mlpost.Point.t
  val rotate : float -> Mlpost.Point.t -> Mlpost.Point.t
  val rotate_around :
    Mlpost.Point.t -> float -> Mlpost.Point.t -> Mlpost.Point.t
  val xscale : Mlpost.Num.t -> Mlpost.Point.t -> Mlpost.Point.t
  val yscale : Mlpost.Num.t -> Mlpost.Point.t -> Mlpost.Point.t
  val normalize : Mlpost.Point.t -> Mlpost.Point.t
  val bpp : float * float -> Mlpost.Point.t
  val inp : float * float -> Mlpost.Point.t
  val cmp : float * float -> Mlpost.Point.t
  val mmp : float * float -> Mlpost.Point.t
  val ptp : float * float -> Mlpost.Point.t
  val map_bp : (float * float) list -> Mlpost.Point.t list
  val map_in : (float * float) list -> Mlpost.Point.t list
  val map_cm : (float * float) list -> Mlpost.Point.t list
  val map_mm : (float * float) list -> Mlpost.Point.t list
  val map_pt : (float * float) list -> Mlpost.Point.t list
  val p : ?scale:(float -> Mlpost.Num.t) -> float * float -> Mlpost.Point.t
  val ptlist :
    ?scale:(float -> Mlpost.Num.t) ->
    (float * float) list -> Mlpost.Point.t list
  val draw :
    ?brush:Mlpost.Brush.t ->
    ?color:Mlpost.Color.t ->
    ?pen:Mlpost.Pen.t -> Mlpost.Point.t -> Mlpost.Command.t
end