SharedForest.SharedForestSourceThis type is the type of addresses of forests. It is a list of (position in the forest,position as a child).
This is the type of relative path from one forest to another one. The first argument is the number of steps to move up, then second argument is the address to reach from this point.
diff add add' returns the relative path to go from the forest (subtree) wich occurs at address add to the forest (subtree) wich occurs at address add'.
path_to_string p returns a string describing the path p.
address_to_string add returns a string describing the address add.
The type of a stack.
a focused list is a pair of a list context and of a list
Recursive definition of a shared forest.
type 'a forest_zipper = | Top of 'a tree focused_list * int| Zip of 'a
* 'a child focused_list
* 'a tree focused_list
* int
* 'a forest_zipper
* 'a forest_zipper option
* addressDefintion of a "forest zipper"
Type definition for the focused forests
Type definition for standard trees
Type definition for standard tree zippers
Type definition for standard focused trees
An abstract type to give access to resumption when trees are built from a forest
empty is the empty resumption
fold_depth_first (f,g) t recursively computes (g a) b_1 .... b_n where a=f t_0 and b_i= f t_i and t is a tree of node t_0 and of children t_1...t_n
init forest builds the resumption with all the focused forest focusing on each of the tree of forest
resumption resume returns a pair (Some t,resume') where t is extracted from resume, the latter being updated with possible alternatives met in building t to produce resume'. It returns (None,[]) if no tree can be extracted
is_empty resume returns true if resume does not propose any other value on which to resume, false otherwise