title: Swift Combine - Does the zip operator retain all values that it hasn't had a chance to publish?
body: <p>Here's the code I'm wondering about:</p>
  <pre><code>final class Foo {
      
      var subscriptions = Set&lt;AnyCancellable&gt;()
      
      init () {
          Timer
              .publish(every: 2, on: .main, in: .default)
              .autoconnect()
              .zip(Timer.publish(every: 3, on: .main, in: .default).autoconnect())
              .sink {
                  print($0)
              }
              .store(in: &amp;subscriptions)
      }
  }
  </code></pre>
  <p>This is the output it produces:</p>
  <pre><code>(2020-12-08 15:45:41 +0000, 2020-12-08 15:45:42 +0000)
  (2020-12-08 15:45:43 +0000, 2020-12-08 15:45:45 +0000)
  (2020-12-08 15:45:45 +0000, 2020-12-08 15:45:48 +0000)
  (2020-12-08 15:45:47 +0000, 2020-12-08 15:45:51 +0000)
  </code></pre>
  <p>Would this code eventually crash from memory shortage? It seems like the zip operator is storing every value that it receives but can't yet publish.</p>