anchor.diff:  def paginated_get(path, options = {})
     Enumerator.new do |y|
       params  = options.dup
  -    page    = params.delete(:page) { 1 }
  -    limit   = params.fetch(:limit) { 50 }
  +    before  = nil
  +    total   = 0
  +    limit   = params.delete(:limit) { 50 }
   
       loop do
  -      data = get(path, { page: page }.merge(params))
  +      data = get(path, { before: before, limit: limit }.merge(params))
  +      total += data.length
   
         data.each do |element|
           y.yield element
         end
   
  -      break if (data.empty? || page * limit >= MAX)
  -
  -      page += 1
  +      break if (data.empty? || total >= MAX)
  +
  +      before = data.last["id"]
       end
     end
   end
  
positive.code: class Cursor
    def initialize(path, options = {})
      @path       = path
      @params     = options.dup
  
      @collection = []
      @page       = params.fetch(:page, 1)
      @limit      = params.fetch(:limit, 50)
    end
  end
  
negative.code:   end
  
    def fetch_next_page
      response              = client.get(@path, @params.merge(before: @before, limit: @limit))
      @last_response_empty  = response.empty?
      @collection           += response
      @before               = response.last["id"] unless last?
    end
  
    MAX = 1000
  
    def last?
      @last_response_empty || @collection.size >= MAX
    end
  end
  ```
  