deferred class
	REAL_NUMBER

inherit
	COMPLEX_NUMBER
		rename
			a as identity alias "+",
			real as identity alias "+",
			b as zero, imaginary as zero,
			conjugate as identity alias "+",
			product as complex_product
		end

feature -- Primitive

	value: REAL
			-- Native value of current real number
		deferred
		end

feature -- Access

	zero: like integer_anchor
			-- <Precursor>
		deferred
		end

feature -- Comparison

	equals alias "≍" (x: REAL_NUMBER): BOOLEAN
			-- Do current real number and `x' have the same numeric value?
		do
			Result := value = x.value
		ensure
			definition: Result = (value = x.value)
		end

feature -- Operation

	opposite alias "-": like real_anchor
			-- <Precursor>
		deferred
		ensure then
			definition: Result.value = - value
		end

feature -- Factory

	normalized_value (v: REAL): REAL
			-- `v' adapted to represent the `value' of current real number
		deferred
		ensure
			stable: normalized_value (Result) = Result
		end

invariant
	normalized: value = normalized_value (value)
	identity: (+ Current).value = value

end
