    class
    	BINARY_SEARCH_TREE [G -> COMPARABLE]

    General
    	cluster: base
    	description:
    		"Binary search trees; left child item is less than current item,
    		right child item is greater"
    	create: bt_make, make

    Ancestors
    	BINARY_TREE [G]

    Queries
    	arity: INTEGER_32
    	binary_representation: BINARY_TREE [G]
    	changeable_comparison_criterion: BOOLEAN
    	child: [like parent] BINARY_SEARCH_TREE [G]
    	child_after: BOOLEAN
    	child_before: BOOLEAN
    	Child_capacity: INTEGER_32
    	child_cursor: ARRAYED_LIST_CURSOR
    	child_index: INTEGER_32
    	child_isfirst: BOOLEAN
    	child_islast: BOOLEAN
    	child_item: [like item] G
    	child_off: BOOLEAN
    	child_readable: BOOLEAN
    	child_writable: BOOLEAN
    	count: INTEGER_32
    	duplicate (n: INTEGER_32): [like Current] BINARY_SEARCH_TREE [G]
    	duplicate_all: [like Current] BINARY_SEARCH_TREE [G]
    	first_child: [like parent] BINARY_SEARCH_TREE [G]
    	has (v: [like item] G): BOOLEAN
    	has_both: BOOLEAN
    	has_left: BOOLEAN
    	has_none: BOOLEAN
    	has_right: BOOLEAN
    	is_empty: BOOLEAN
    	is_equal (other: [like Current] BINARY_SEARCH_TREE [G]): BOOLEAN
    	is_leaf: BOOLEAN
    	is_root: BOOLEAN
    	is_sibling (other: [like parent] BINARY_SEARCH_TREE [G]): BOOLEAN
    	item: G
    	last_child: [like parent] BINARY_SEARCH_TREE [G]
    	left_child: [like parent] BINARY_SEARCH_TREE [G]
    	left_item: [like item] G
    	left_sibling: [like parent] BINARY_SEARCH_TREE [G]
    	linear_representation: LINEAR [G]
    	max: [like item] G
    	min: [like item] G
    	node_is_equal (other: [like Current] BINARY_SEARCH_TREE [G]): BOOLEAN
    	object_comparison: BOOLEAN
    	parent: BINARY_SEARCH_TREE [G]
    	Readable: BOOLEAN
    	readable_child: BOOLEAN
    	right_child: [like parent] BINARY_SEARCH_TREE [G]
    	right_item: [like item] G
    	right_sibling: [like parent] BINARY_SEARCH_TREE [G]
    	sorted: BOOLEAN
    	sorted_and_less (i: [like item] G): BOOLEAN
    	valid_cursor_index (i: INTEGER_32): BOOLEAN
    	Writable: BOOLEAN
    	writable_child: BOOLEAN

    Commands
    	bt_make (v: [like item] G)
    	bt_put (v: [like item] G)
    	child_back
    	child_finish
    	child_forth
    	child_go_i_th (i: INTEGER_32)
    	child_go_to (p: ARRAYED_LIST_CURSOR)
    	child_put (v: [like item] G)
    	child_remove
    	child_replace (v: [like item] G)
    	child_start
    	compare_objects
    	compare_references
    	copy (other: [like Current] BINARY_SEARCH_TREE [G])
    	extend (v: [like item] G)
    	fill (other: TREE [G])
    	forget_left
    	forget_right
    	i_infix
    	node_action (v: [like item] G)
    	postorder
    	preorder
    	prune (n: [like parent] BINARY_SEARCH_TREE [G])
    	put (v: [like item] G)
    	put_child (n: [like parent] BINARY_SEARCH_TREE [G])
    	replace (v: [like item] G)
    	replace_child (n: [like parent] BINARY_SEARCH_TREE [G])
    	sort
    	sprout
    	wipe_out