# File lib/backports/2.0.0/enumerable/lazy.rb, line 145
      def take(n)
        n = Backports::coerce_to_int(n)
        raise ArgumentError, 'attempt to take negative size' if n < 0
        Lazy.new(n == 0 ? [] : self) do |yielder, *values|
          data = yielder.backports_memo ||= {:remain => n}
          yielder.yield(*values)
          throw @@done if (data[:remain] -= 1) == 0
        end.__set_inspect :take, [n], self
      end