sig
  type t
  type arrow_style = Directed | Undirected
  type edge_style = Straight | Curve | Square | HalfSquare
  val leaf : Mlpost.Box.t -> Mlpost.Tree.t
  val node :
    ?ls:Mlpost.Num.t ->
    ?cs:Mlpost.Num.t ->
    ?arrow_style:Mlpost.Tree.arrow_style ->
    ?edge_style:Mlpost.Tree.edge_style ->
    ?stroke:Mlpost.Color.t ->
    ?brush:Mlpost.Brush.t ->
    ?pen:Mlpost.Pen.t ->
    ?sep:Mlpost.Num.t -> Mlpost.Box.t -> Mlpost.Tree.t list -> Mlpost.Tree.t
  val nodel :
    ?ls:Mlpost.Num.t ->
    ?cs:Mlpost.Num.t ->
    ?arrow_style:Mlpost.Tree.arrow_style ->
    ?edge_style:Mlpost.Tree.edge_style ->
    ?stroke:Mlpost.Color.t ->
    ?brush:Mlpost.Brush.t ->
    ?pen:Mlpost.Pen.t ->
    ?sep:Mlpost.Num.t ->
    Mlpost.Box.t ->
    (Mlpost.Tree.t * (Mlpost.Command.position * Mlpost.Picture.t)) list ->
    Mlpost.Tree.t
  val bin :
    ?ls:Mlpost.Num.t ->
    ?cs:Mlpost.Num.t ->
    ?arrow_style:Mlpost.Tree.arrow_style ->
    ?edge_style:Mlpost.Tree.edge_style ->
    ?stroke:Mlpost.Color.t ->
    ?brush:Mlpost.Brush.t ->
    ?pen:Mlpost.Pen.t ->
    ?sep:Mlpost.Num.t ->
    Mlpost.Box.t -> Mlpost.Tree.t -> Mlpost.Tree.t -> Mlpost.Tree.t
  val to_box : Mlpost.Tree.t -> Mlpost.Box.t
  val draw : ?debug:bool -> Mlpost.Tree.t -> Mlpost.Command.t
  module Simple :
    sig
      type t
      val leaf : Mlpost.Box.t -> Mlpost.Tree.Simple.t
      val node :
        ?ls:Mlpost.Num.t ->
        ?cs:Mlpost.Num.t ->
        ?arrow_style:Mlpost.Tree.arrow_style ->
        ?edge_style:Mlpost.Tree.edge_style ->
        ?stroke:Mlpost.Color.t ->
        ?brush:Mlpost.Brush.t ->
        ?pen:Mlpost.Pen.t ->
        ?sep:Mlpost.Num.t ->
        ?valign:Mlpost.Command.position ->
        ?halign:Mlpost.Command.position ->
        Mlpost.Box.t -> Mlpost.Tree.Simple.t list -> Mlpost.Tree.Simple.t
      val bin :
        ?ls:Mlpost.Num.t ->
        ?cs:Mlpost.Num.t ->
        ?arrow_style:Mlpost.Tree.arrow_style ->
        ?edge_style:Mlpost.Tree.edge_style ->
        ?stroke:Mlpost.Color.t ->
        ?brush:Mlpost.Brush.t ->
        ?pen:Mlpost.Pen.t ->
        ?sep:Mlpost.Num.t ->
        Mlpost.Box.t ->
        Mlpost.Tree.Simple.t -> Mlpost.Tree.Simple.t -> Mlpost.Tree.Simple.t
      val to_box : Mlpost.Tree.Simple.t -> Mlpost.Box.t
      val draw : ?debug:bool -> Mlpost.Tree.Simple.t -> Mlpost.Command.t
    end
end