   /// - Parameter build: The work associated with yielding values to the AsyncStream.
   ///
   /// The maximum number of pending elements limited by dropping the oldest
-  /// value when a new value comes in if the buffer would excede the limit
+  /// value when a new value comes in if the buffer would exceed the limit
   /// placed upon it. By default this limit is unlimited.
   ///
   /// The build closure passes in a Continuation which can be used in

  /// next iteration is active where the `Element` is `Void`.
  ///
  /// This can be called more than once and returns to the caller immediately
  /// without blocking for any awaiting consuption from the iteration.
  public func yield() where Element == Void {
    storage.yield(())
  }

    ///
    /// If the task this iterator is running in is canceled while next is
    /// awaiting a value, this will terminate the AsyncStream and next may return nil
    /// immediately (or will return nil on subsequent calls)
    public mutating func next() async -> Element? {
      await produce()
    }
