interface ITreeControl { expand_all ( ) ; collapse_all ( ) ; get_first_branch ( ) : TreeBranch ; select_first_branch ( ) : TreeBranch ; get_selected_branch ( ) : TreeBranch ; get_parent_branch ( b ) : TreeBranch ; select_branch ( b ) : TreeBranch ; get_children ( b ) : TreeBranch [ ] ; select_parent_branch ( b ) : TreeBranch ; add_branch ( parent , new_branch ) : TreeBranch ; get_roots ( ) : TreeBranch [ ] ; add_root_branch ( new_branch ) : TreeBranch ; expand_branch ( b ) : TreeBranch ; collapse_branch ( b ) : TreeBranch ; get_siblings ( b ) : TreeBranch [ ] ; get_next_sibling ( b ) : TreeBranch ; get_prev_sibling ( b ) : TreeBranch ; select_next_sibling ( b ) : TreeBranch ; select_prev_sibling ( b ) : TreeBranch ; get_first_child ( b ) : TreeBranch ; get_closest_ancestor_next_sibling ( b ) : TreeBranch ; get_next_branch ( b ) : TreeBranch ; select_next_branch ( b ) : TreeBranch ; last_descendant ( b ) : TreeBranch ; get_prev_branch ( b ) : TreeBranch ; select_prev_branch ( b ) : TreeBranch ; get_first_non_instruction_child ( b ) : TreeBranch ; }