  
  [1X9 [33X[0;0YTrees[133X[101X
  
  [33X[0;0YThe  trees  are  used in ToDoLists. They are a technical feature, and fairly
  general, so they also can be used somewhere else.[133X
  
  
  [1X9.1 [33X[0;0YTrees[133X[101X
  
  [1X9.1-1 IsTree[101X
  
  [33X[1;0Y[29X[2XIsTree[102X( [3Xarg[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe  category  of  trees. A tree may have a content, a list of successors, a
  predecessor and it knows if it is a leave of a tree or not.[133X
  
  [1X9.1-2 Content[101X
  
  [33X[1;0Y[29X[2XContent[102X( [3Xarg[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Yobject[133X
  
  [33X[0;0YThe content of the tree. May be any object.[133X
  
  [1X9.1-3 ListOfSuccessors[101X
  
  [33X[1;0Y[29X[2XListOfSuccessors[102X( [3Xarg[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya list of trees[133X
  
  [33X[0;0YReturns the list of successors of a tree.[133X
  
  [1X9.1-4 Predecessor[101X
  
  [33X[1;0Y[29X[2XPredecessor[102X( [3Xarg[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya tree or fail[133X
  
  [33X[0;0YReturns the predecessor of a tree, or fail if there is none.[133X
  
  [1X9.1-5 ListOfSentinels[101X
  
  [33X[1;0Y[29X[2XListOfSentinels[102X( [3Xarg[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya list[133X
  
  [33X[0;0YReturns a list of leaves of the tree.[133X
  
  [1X9.1-6 RemoveHead[101X
  
  [33X[1;0Y[29X[2XRemoveHead[102X( [3Xarg[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya tree[133X
  
  [33X[0;0YReturns  the  first  successor of the tree, and adds all other successors of
  the tree to the tree that is returned. If the tree is a leave, it returns an
  empty tree. If the tree is empty, it returns the tree itself.[133X
  
  [1X9.1-7 Tree[101X
  
  [33X[1;0Y[29X[2XTree[102X(  ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya tree[133X
  
  [33X[0;0YReturns an empty tree.[133X
  
  [1X9.1-8 Tree[101X
  
  [33X[1;0Y[29X[2XTree[102X( [3Xobj[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya tree[133X
  
  [33X[0;0YReturns a tree with argument [3Xobj[103X.[133X
  
  [1X9.1-9 Add[101X
  
  [33X[1;0Y[29X[2XAdd[102X( [3Xtree[103X, [3Xnew_tree[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ynothing[133X
  
  [33X[0;0YAdds the [list of] tree[s] [3Xnew_tree[103X as successor to the tree [3Xtree[103X.[133X
  
  [1X9.1-10 ContentListFromSentinelToHead[101X
  
  [33X[1;0Y[29X[2XContentListFromSentinelToHead[102X( [3Xsent[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya list[133X
  
  [33X[0;0YReturns  a  list  of the contents of the trees from the leave [3Xsent[103X up to the
  content of the head of the tree.[133X
  
  [1X9.1-11 PostOrder[101X
  
  [33X[1;0Y[29X[2XPostOrder[102X( [3Xarg[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya list[133X
  
  [33X[0;0YReturns the contents of the nodes of the tree in post-order.[133X
  
