There are quite a lot of generator implementations that also implement 
SequenceType (since it’s as simple as returning self). Indeed, the AnyGenerator 
type conforms to SequenceType, allowing any generator to be wrapped as a 
sequence, though I imagine this comes with some overhead. So it got me 
thinking, why doesn’t GeneratorType just require conformance to SequenceType? 
It would be extremely simple to provide the default implementation (return self 
like I say), and allow all generators to be passed seamlessly into functions 
that take sequences, without having to wrap them first. It also gives access to 
the same rich set of methods to generators directly.


I can’t really think of any reason not to do this, which is why I wanted to ask 
first, as I thought perhaps there’s something I’m missing. The only things I 
can think of are destructive sequences or generators implemented by classes 
(both of which could result in different references getting different elements, 
or one being consumed before it is used), however this is something that 
already requires clear documentation, since I could fall into the same trap 
using AnyGenerator anyway.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to