indexing
	description: "Structure searchers"
	library: "Gobo Eiffel Structure Library"
	author: "Eric Bezault <ericb@gobo.demon.co.uk>"
	copyright: "Copyright (c) 1997, Eric Bezault"

deferred class interface
	DS_SEARCHER [G]

feature -- Measurement

	occurrences (a_container: DS_SEARCHABLE [G]; v: G): INTEGER
			-- Number of times v appears in a_container
		ensure
			positive: Result >= 0;
			has: a_container.has (v) implies Result >= 1
	
feature -- Status report

	has (a_container: DS_SEARCHABLE [G]; v: G): BOOLEAN
			-- Does a_container include v?
		require
			a_container_not_void: a_container /= void
		ensure
			not_empty: Result implies not a_container.is_empty
	
invariant

		-- from GENERAL
	reflexive_equality: standard_is_equal (Current);
	reflexive_conformance: conforms_to (Current);

end -- class DS_SEARCHER