Mlpost.Tree_adv
EXPERIMENTAL: A new way of placing trees.
This module provides even more high-level means for placing trees.
module Place (X : Signature.Boxlike) : sig ... end
val gen_draw_arrows : 'c -> style:(Point.t -> Point.t -> 'c) -> corner:(Box.position -> 'a -> Point.t) -> 'a t -> 'c t
draws arrows from a node to its children with a given style
Draws a tree that has already been placed when one knows how to draw its elements.
map2 f
takes two trees of identical structure and applies the function f
to every pair of nodes. Raise Invalid_argument
if the trees do not have the same structure.
Transform a pair of trees into a tree of pairs. Raise Invalid_argument
if the trees do not have the same structure.
root_map f t
calls f (Some father) node
for each node of t
and its father. It calls f None root
, where root
is the root of the once, once at the beginning. A tree having the same structure is built with the results.
map_children f t
calls f node children
for each node of t
and its children. A tree having the same structure is built with the results
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
Traverse the tree in a bottom-up, left-to-right order
val fold_child : ('a -> 'b -> 'b -> 'a) -> 'a -> 'b t -> 'a
Traverse the pairs of parent-child in the tree in a bottom-up, left-to-right order
filter f t If for a node n of t f n is false then it doesn't appear in the result as well as its descendants. If f is false for the root node, invalid_argument is raised
Suppress a subtree depending on a condition on the node
val wrap_corner_box : ('a -> Box.t) -> (corner:(Box.position -> 'a -> Point.t) -> 'c) -> 'c
wrap_corner_box give_box f
returns f
where its argument corner has been set
module Overlays : sig ... end
Tools for overlay aware trees
module Overlays_Boxlike (X : Signature.Boxlike) : Signature.Boxlike with type t = X.t Overlays.spec