Property definitions

core $ RandQueue :: defaultinit
private class RandQueue[E]
	super Queue[E]
	var seq: SimpleCollection[E]
	redef fun add(e)
	do
		seq.add(e)
		# Reset the cache to give the new element a chance!
		peek_cached = false
	end
	redef fun take
	do
		var res = peek
		peek_cached = false
		seq.remove(res)
		return res
	end
	redef fun peek do
		if peek_cached then return peek_cache
		var res = seq.rand
		peek_cache = res
		peek_cached = true
		return res
	end
	var peek_cached = false
	var peek_cache: E is noinit
	redef fun length do return seq.length
	redef fun is_empty do return seq.is_empty
	redef fun iterator do return seq.iterator
	redef fun remove(e) do seq.remove(e)
end
lib/core/queue.nit:177,1--206,3