class Async::List

def first

@returns [Node] Returns the first node in the list, if it is not empty.
def first
	# validate!
	
	current = @tail
	
	while !current.equal?(self)
		if current.is_a?(Iterator)
			current = current.tail
		else
			return current
		end
	end
	
	return nil
end