indexing
	description: "Linkable cells with a reference to the left and right neighbors"
	names: bi_linkable, cell
	representation: linked
	contents: generic

class interface
	BI_LINKABLE [G]

feature -- Access

	left: like Current
			-- Left neighbor

	right: like Current
			-- Right neighbor
			-- (from LINKABLE)
	
feature {ANY} -- Access

	item: G
			-- Content of cell.
			-- (from CELL)
	
feature -- Element change

	replace (v: like item)
			-- Make v the cell's item.
			-- Was declared in CELL as synonym of put and replace.
			-- (from CELL)
		ensure -- from CELL
			item_inserted: item = v
	
invariant

		-- from GENERAL
	reflexive_equality: standard_is_equal (Current);
	reflexive_conformance: conforms_to (Current);
	right_symmetry: (right /= void) implies (right.left = Current);
	left_symmetry: (left /= void) implies (left.right = Current);

end -- class BI_LINKABLE