(** Signature for points *) module type P = sig type t val get_coord : t -> Gg.v2 end module Make(P:P) : sig type t (** Create an empty path *) val empty: t val add_point : P.t -> t -> t (** Replace the last alement in the path by the one given in parameter *) val replace_last : P.t -> t -> t (** Retrieve the last element, if any *) val peek : t -> P.t option (** Retrieve the last element, if any *) val peek2 : t -> (P.t * P.t) option val get : t -> P.t list * Shapes.Bezier.t list end