Avatar
foo1 の返す some Foo には Bar と名前をつけて、 foo2 の返す some Foo には Baz と名前をつければ↓のようなことは起こらない。 var a: some Foo = foo1() let b: some Foo = foo2() a = b // `some Foo` と `some Foo` は字面上同じ型っぽいけど別の型なのでエラー
2:02 AM
名前がほしいならそもそもの(Motivationの) struct LazyMapCollection で書けば良い気がしますが
実装上の型を露出しない上での話。