 }
 
 @frozen
-public struct LazyRecursiveMapSequence<Base: Sequence, Transformed: Collection>: LazySequenceProtocol where Base.Element == Transformed.Element {
+public struct LazyRecursiveMapSequence<Base: Sequence, Transformed: Sequence>: LazySequenceProtocol where Base.Element == Transformed.Element {
     
     @usableFromInline
     let base: Base

extension Sequence {
    
    @inlinable
    public func recursiveMap<C: Collection>(_ transform: (Element) throws -> C) rethrows -> [Element] where C.Element == Element {
        var result: [Element] = Array(self)
        var mapped = try result.flatMap(transform)
        repeat {

extension LazySequenceProtocol {
    
    @inlinable
    public func recursiveMap<S>(_ transform: @escaping (Element) -> S) -> LazyRecursiveMapSequence<Elements, S> {
        return LazyRecursiveMapSequence(self.elements, transform)
    }
}
