         self.base = base
     }
     
-    @inlinable
-    func makeAsyncIterator() -> AsyncIterator {
+    public func makeAsyncIterator() -> AsyncIterator {
         return AsyncIterator(base)
     }
     
     @frozen
-    @usableFromInline
-    struct AsyncIterator: AsyncIteratorProtocol {
+    public struct AsyncIterator: AsyncIteratorProtocol {
         
         @usableFromInline
         var base: S.Iterator

    }
    
    @inlinable
    func flatMap<SegmentOfResult: AsyncSequence>(_ transform: @escaping (Element) async throws -> SegmentOfResult) -> AsyncThrowingFlatMapSequence<_AsyncSequenceBox<Self>, SegmentOfResult> {
        return _AsyncSequenceBox(self).flatMap(transform)
    }
    
    @inlinable
    func compactMap<ElementOfResult>(_ transform: @escaping (Element) async -> ElementOfResult?) -> AsyncCompactMapSequence<_AsyncSequenceBox<Self>, ElementOfResult> {
        return _AsyncSequenceBox(self).compactMap(transform)
    }
    
    @inlinable
    func compactMap<ElementOfResult>(_ transform: @escaping (Element) async throws -> ElementOfResult?) -> AsyncThrowingCompactMapSequence<_AsyncSequenceBox<Self>, ElementOfResult> {
        return _AsyncSequenceBox(self).compactMap(transform)
    }
    
}

#endif

extension Sequence {
    
    @inlinable
    public func map<T>(_ transform: @escaping (Element) async -> T) -> AsyncMapSequence<_AsyncSequenceBox<Self>, T> {
        return _AsyncSequenceBox(self).map(transform)
    }
    
    @inlinable
    public func map<T>(_ transform: @escaping (Element) async throws -> T) -> AsyncThrowingMapSequence<_AsyncSequenceBox<Self>, T> {
        return _AsyncSequenceBox(self).map(transform)
    }
    
    @inlinable
    public func filter(_ isIncluded: @escaping (Element) async -> Bool) -> AsyncFilterSequence<_AsyncSequenceBox<Self>> {
        return _AsyncSequenceBox(self).filter(isIncluded)
    }
    
    @inlinable
    public func filter(_ isIncluded: @escaping (Element) async throws -> Bool) -> AsyncThrowingFilterSequence<_AsyncSequenceBox<Self>> {
        return _AsyncSequenceBox(self).filter(isIncluded)
    }
    
