sig
  type node
  type node_style = Mlpost.Box.t -> Mlpost.Box.t
  val node :
    ?style:Mlpost.Diag.node_style ->
    ?fill:Mlpost.Color.t ->
    ?boxed:bool -> float -> float -> Mlpost.Box.t -> Mlpost.Diag.node
  type t
  val create : Mlpost.Diag.node list -> Mlpost.Diag.t
  type dir = Up | Down | Left | Right | Angle of float
  val arrow :
    Mlpost.Diag.t ->
    ?lab:string ->
    ?line_width:Mlpost.Num.t ->
    ?boxed:bool ->
    ?line_color:Mlpost.Color.t ->
    ?fill_color:Mlpost.Color.t ->
    ?pos:Mlpost.Command.position ->
    ?head:bool ->
    ?dashed:Mlpost.Dash.t ->
    ?outd:Mlpost.Diag.dir ->
    ?ind:Mlpost.Diag.dir -> Mlpost.Diag.node -> Mlpost.Diag.node -> unit
  val draw :
    ?scale:(float -> Mlpost.Num.t) ->
    ?style:Mlpost.Diag.node_style ->
    ?boxed:bool ->
    ?fill:Mlpost.Color.t ->
    ?stroke:Mlpost.Color.t ->
    ?pen:Mlpost.Pen.t -> Mlpost.Diag.t -> Mlpost.Command.t
end