class
	BINARY_TREE [G]

General
	cluster: base.structures.tree
	description: "Binary tree: each node may have a left child and a right child"
	create: make

Ancestors
	CELL [G]
	TREE [G]

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

Commands
	child_back
	child_finish
	child_forth
	child_go_i_th (i: INTEGER)
	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_TREE [G])
	fill (other: TREE [G])
	make (v: [like item] G)
	prune (n: [like parent] BINARY_TREE [G])
	put (v: [like item] G)
	put_child (n: [like parent] BINARY_TREE [G])
	put_left_child (n: [like parent] BINARY_TREE [G])
	put_right_child (n: [like parent] BINARY_TREE [G])
	remove_left_child
	remove_right_child
	replace (v: [like item] G)
	replace_child (n: [like parent] BINARY_TREE [G])
	sprout

Constraints
	tree is binary