    deferred class
    	HIERARCHICAL [G]

    General
    	cluster: base
    	description:
    		"Hierarchical structures in which each item has zero or
    		one immediate predecessor, and zero or more successors."

    Ancestors
    	TRAVERSABLE* [G]

    Queries
    	changeable_comparison_criterion: BOOLEAN
    	for_all (test: FUNCTION [ANY, TUPLE [G], BOOLEAN]): BOOLEAN
    	has (v: G): BOOLEAN
    	is_empty: BOOLEAN
    	item: G
    	linear_representation: LINEAR [G]
    	object_comparison: BOOLEAN
    	off: BOOLEAN
    	successor_count: INTEGER_32
    	there_exists (test: FUNCTION [ANY, TUPLE [G], BOOLEAN]): BOOLEAN

    Commands
    	compare_objects
    	compare_references
    	do_all (action: PROCEDURE [ANY, TUPLE [G]])
    	do_if (action: PROCEDURE [ANY, TUPLE [G]]; test: FUNCTION [ANY, TUPLE [G], BOOLEAN])
    	down (i: INTEGER_32)
    	start
    	up

    Constraints
    	non negative successor count