class
	HASH_TABLE [G, H -> HASHABLE]

General
	cluster: base.structures.table
	description: "Hash tables, used to store items identified by hashable keys"
	create: make

Ancestors
	TABLE [G, H]
	UNBOUNDED [G]

Queries
	infix "@" (key: H): G
	after: BOOLEAN
	capacity: INTEGER
	changeable_comparison_criterion: BOOLEAN
	conflict: BOOLEAN
	count: INTEGER
	current_keys: ARRAY [H]
	cursor: CURSOR
	Extendible: BOOLEAN
	found: BOOLEAN
	found_item: G
	Full: BOOLEAN
	has (key: H): BOOLEAN
	has_item (v: G): BOOLEAN
	inserted: BOOLEAN
	is_empty: BOOLEAN
	is_equal (other: [like Current] HASH_TABLE [G, H]): BOOLEAN
	is_inserted (v: G): BOOLEAN
	item (key: H): G
	item_for_iteration: G
	key_for_iteration: H
	linear_representation: ARRAYED_LIST [G]
	not_found: BOOLEAN
	object_comparison: BOOLEAN
	occurrences (v: G): INTEGER
	off: BOOLEAN
	prunable: BOOLEAN
	removed: BOOLEAN
	replaced: BOOLEAN
	valid_cursor (c: CURSOR): BOOLEAN
	valid_key (k: H): BOOLEAN

Commands
	accommodate (n: INTEGER)
	clear_all
	compare_objects
	compare_references
	copy (other: [like Current] HASH_TABLE [G, H])
	extend (new: G; key: H)
	fill (other: CONTAINER [G])
	force (new: G; key: H)
	forth
	go_to (c: CURSOR)
	make (n: INTEGER)
	put (new: G; key: H)
	remove (key: H)
	replace (new: G; key: H)
	replace_key (new_key, old_key: H)
	search (key: H)
	start

Constraints
	keys not void
	content not void
	keys same capacity plus one
	content same capacity plus one
	deleted same capacity
	keys starts at zero
	content starts at zero
	deleted starts at zero
	valid iteration position
	control non negative
	special status
	max occupation meaningful
	initial occupation meaningful
	sized generously enough
	count big enough
	count small enough
	breathing space
	count no more than slot count
	slot count big enough
	slot count small enough
	extra space non negative