title: Enumerator#each Restarts Sequence
body: <p>I'm surprised that Enumerator#each doesn't start off at the current position in the sequence.</p>
  
  <pre><code>o = Object.new
  
  def o.each
    yield 1
    yield 2
    yield 3
  end
  
  e = o.to_enum
  puts e.next
  puts e.next
  e.each{|x| puts x}
  # I expect to see 1,2,3 but I see 1,2,1,2,3
  # apparently Enumerator's each (inherited from Enumerable) restarts the sequence!
  </code></pre>
  
  <p>Am I doin' it wrong? Is there a way to maybe construct another Enumerator (from e) that will have the expected each behavior?</p>