sig
  type direction = Mlpost.Path.direction
  val vec : Mlpost.Point.t -> Mlpost.MetaPath.direction
  val curl : float -> Mlpost.MetaPath.direction
  val noDir : Mlpost.MetaPath.direction
  type knot = Mlpost.Path.knot
  val knotp :
    ?l:Mlpost.MetaPath.direction ->
    ?r:Mlpost.MetaPath.direction -> Mlpost.Point.t -> Mlpost.MetaPath.knot
  val knotlist :
    (Mlpost.MetaPath.direction * Mlpost.Point.t * Mlpost.MetaPath.direction)
    list -> Mlpost.MetaPath.knot list
  type joint = Mlpost.Path.joint
  val jLine : Mlpost.MetaPath.joint
  val jCurve : Mlpost.MetaPath.joint
  val jCurveNoInflex : Mlpost.MetaPath.joint
  val jTension : float -> float -> Mlpost.MetaPath.joint
  val jControls : Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.MetaPath.joint
  type t
  type path = Mlpost.Path.t
  val knot :
    ?l:Mlpost.MetaPath.direction ->
    ?r:Mlpost.MetaPath.direction ->
    ?scale:(float -> Mlpost.Num.t) -> float * float -> Mlpost.MetaPath.knot
  val knotn :
    ?l:Mlpost.MetaPath.direction ->
    ?r:Mlpost.MetaPath.direction ->
    Mlpost.Num.t * Mlpost.Num.t -> Mlpost.MetaPath.knot
  val path :
    ?style:Mlpost.MetaPath.joint ->
    ?scale:(float -> Mlpost.Num.t) ->
    (float * float) list -> Mlpost.MetaPath.t
  val pathn :
    ?style:Mlpost.MetaPath.joint ->
    (Mlpost.Num.t * Mlpost.Num.t) list -> Mlpost.MetaPath.t
  val pathk :
    ?style:Mlpost.MetaPath.joint ->
    Mlpost.MetaPath.knot list -> Mlpost.MetaPath.t
  val pathp :
    ?style:Mlpost.MetaPath.joint -> Mlpost.Point.t list -> Mlpost.MetaPath.t
  val jointpathk :
    Mlpost.MetaPath.knot list ->
    Mlpost.MetaPath.joint list -> Mlpost.MetaPath.t
  val jointpathp :
    Mlpost.Point.t list -> Mlpost.MetaPath.joint list -> Mlpost.MetaPath.t
  val jointpathn :
    (Mlpost.Num.t * Mlpost.Num.t) list ->
    Mlpost.MetaPath.joint list -> Mlpost.MetaPath.t
  val jointpath :
    ?scale:(float -> Mlpost.Num.t) ->
    (float * float) list -> Mlpost.MetaPath.joint list -> Mlpost.MetaPath.t
  val cycle :
    ?dir:Mlpost.MetaPath.direction ->
    ?style:Mlpost.MetaPath.joint -> Mlpost.MetaPath.t -> Mlpost.MetaPath.path
  val concat :
    ?style:Mlpost.MetaPath.joint ->
    Mlpost.MetaPath.t -> Mlpost.MetaPath.knot -> Mlpost.MetaPath.t
  val start : Mlpost.MetaPath.knot -> Mlpost.MetaPath.t
  val append :
    ?style:Mlpost.MetaPath.joint ->
    Mlpost.MetaPath.t -> Mlpost.MetaPath.t -> Mlpost.MetaPath.t
  val defaultjoint : Mlpost.MetaPath.joint
  val to_path : Mlpost.MetaPath.t -> Mlpost.MetaPath.path
  val of_path : Mlpost.MetaPath.path -> Mlpost.MetaPath.t
end