mlpost
Library
Module
Module type
Parameter
Class
Class type
Functions for placement
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.
Useful functions
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