Suggest:

    def exhausted?
      limited? ? (@returned >= limit) : closed?
    end