Module Mlpost__Tree

type arrow_style =
| Directed
| Undirected
type edge_style =
| Straight
| Curve
| Square
| HalfSquare
type 'a tree =
| Node of 'a * 'a tree list
type extend = (Mlpost.Num.t * Mlpost.Num.t) list
type 'a positionedtree = ('a * Mlpost.Num.t * Mlpost.Num.t) tree
val movetree : ('a * float * 'b) tree -> float -> ('a * float * 'b) tree
val moveextend : extend -> Mlpost.Num.t -> extend
val merge : ('a * 'b) list -> ('a * 'b) list -> ('a * 'b) list
val mergelist : ('a * 'b) list list -> ('a * 'b) list
val fit : float -> extend -> extend -> Mlpost.Num.t
val fitlistl : float -> extend list -> Mlpost.Num.t list
val fitlistr : float -> extend list -> Mlpost.Num.t list
val mean : float -> float -> float
val fitlist : float -> extend list -> Mlpost.Num.t list
val bfs : ((Mlpost.Box.t * 'a) * 'b * 'c) tree -> Mlpost.Num.t list
val dfs : 'a list -> ('b * 'c * 'd) tree -> ('b * 'c * 'a) tree
type node_info = {
ls : Mlpost.Num.t;
cs : Mlpost.Num.t;
arrow_style : arrow_style;
edge_style : edge_style;
stroke : Mlpost.Color.t option;
pen : Mlpost.Pen.t option;
sep : Mlpost.Num.t option;
lab : (Mlpost.Command.position * Mlpost.Picture.t) list option;
}
val dummy_info : node_info
val design : (Mlpost.Box.t * node_info) tree -> ((Mlpost.Box.t * node_info) * float * Mlpost.Num.t) tree
val strip : ?⁠sep:float -> Mlpost__.Types.path -> Mlpost__.Types.path
val cpath : ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost.Box.t -> Mlpost.Box.t -> Mlpost__.Types.path
val box_arrow : ?⁠color:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠dashed:Mlpost__.Types.dash -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost.Box.t -> Mlpost.Box.t -> Mlpost__.Types.commandpic
val box_line : ?⁠color:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠dashed:Mlpost__.Types.dash -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost.Box.t -> Mlpost.Box.t -> Mlpost__.Types.commandpic
val arc : arrow_style -> edge_style -> ?⁠stroke:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠sep:float -> ?⁠lab:(Mlpost__.Types.position * Mlpost__.Types.commandpic) -> Mlpost.Box.t -> Mlpost.Box.t -> Mlpost__.Types.commandpic
val is_leaf : Mlpost.Box.t -> bool
val root : Mlpost.Box.t -> Mlpost.Box.t
val children : Mlpost.Box.t -> Mlpost.Box.t list
type t = (Mlpost.Box.t * node_info) tree
val leaf : 'a -> ('a * node_info) tree
val node : ?⁠ls:Mlpost.Num.t -> ?⁠cs:Mlpost.Num.t -> ?⁠arrow_style:arrow_style -> ?⁠edge_style:edge_style -> ?⁠stroke:Mlpost.Color.t -> ?⁠brush:'a -> ?⁠pen:Mlpost.Pen.t -> ?⁠sep:Mlpost.Num.t -> 'b -> ('b * node_info) tree list -> ('b * node_info) tree
val nodel : ?⁠ls:Mlpost.Num.t -> ?⁠cs:Mlpost.Num.t -> ?⁠arrow_style:arrow_style -> ?⁠edge_style:edge_style -> ?⁠stroke:Mlpost.Color.t -> ?⁠brush:'a -> ?⁠pen:Mlpost.Pen.t -> ?⁠sep:Mlpost.Num.t -> 'b -> (('b * node_info) tree * (Mlpost.Command.position * Mlpost.Picture.t)) list -> ('b * node_info) tree
val bin : ?⁠ls:Mlpost.Num.t -> ?⁠cs:Mlpost.Num.t -> ?⁠arrow_style:arrow_style -> ?⁠edge_style:edge_style -> ?⁠stroke:Mlpost.Color.t -> ?⁠brush:'a -> ?⁠pen:Mlpost.Pen.t -> ?⁠sep:Mlpost.Num.t -> 'b -> ('b * node_info) tree -> ('b * node_info) tree -> ('b * node_info) tree
val to_box : (Mlpost.Box.t * node_info) tree -> Mlpost.Box.t
val draw : ?⁠debug:bool -> (Mlpost.Box.t * node_info) tree -> Mlpost__.Types.commandpic
module Simple : sig ... end