Excited to see this!
Personally, I'd rather we not add any primary associated types to LazySequenceProtocol
and LazyCollectionProtocol
. They aren't likely to be used often, and it feels odd to have them be based on Elements
rather than Element
like the other sequence/collection protocols. We could always add them later if compelling use cases show up in sufficient quantity.
The distributed actors runtime proposal added a few protocols that could benefit from this feature. @ktoso should weigh in here as well, but my take is:
DistributedActor<ActorSystem>
DistributedActorSystem<SerializationRequirement>
: this protocol has several associated types, but I anticipateany DistributedActorSystem<Codable>
to be a Very Useful Thing.DistributedTargetInvocationEncoder<SerializationRequirement>
DistributedTargetInvocationDecoder<SerializationRequirement>
DistributedTargetInvocationResultHandler<SerializationRequirement>
Definitely the right call. We should bring this in when we've dealt with the Error
type, rethrowing conformances, and all of the other exciting throwing-ness of these protocols.
Doug