@_specialize(exported: true, where Wrapped == Int, S == [_])
みたいな記述を認めてほしいね。_
が他の構文の where
でも書けるなら Parameterized Extension がなくても↓みたいなのもできるし。 extension Optional where Wrapped == _? { func flatten() -> Wrapped.Wrapped? { return flatMap { $0 } } }
@_specialize(exported: true, where Wrapped == Int, S == [Int])
で警告が出なくなるというのもいいけど、記述が冗長であることは否めない。 Int
じゃなくて Foo<Bar<Baz>>
とかだと 2 回書くのは大変。