Hi, I came across hit issue while chaining filter() and prefix() on lazy sequences: https://bugs.swift.org/browse/SR-461
And started wondering if it would be more consistent if lazy.filter().prefix() returned a custom LazySequenceType<Generator.Element> instead of Slice<LazyFilterCollection<Range<Generator.Element>>>. That way lazy.filter().prefix() could be used to chain *pure lazy operations*, which can be actually quite useful in some cases. I understand that this has implications, and it would make prefix() less consistent in terms of return type, but it would eliminate confusion like SR-461 <https://bugs.swift.org/browse/SR-461>. Also, this wouldn't be a much different than how how lazy.filter() is implemented, since it also returns a custom LazySequenceType instead of SequenceType. Has this been considered before? Would there be any cases where this would create unintended side effects? As far as I see, it wouldn't change the meaning of prefix(), only would it extend its usefulness. I submitted a PR to the SwiftSequence library that demonstrates the implementation of this: https://github.com/itchingpixels/SwiftSequence/commit/26101e5aec6c266048bbad4db7b44b9c453f07ca And I'm happy to contribute to contribute it to stdlib if people find it useful. Thanks a lot! Mark
_______________________________________________ swift-corelibs-dev mailing list swift-corelibs-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-corelibs-dev