RxSwiftでTraitsをご存知でしょうか。 実際にクラスとして定義されているのはPrimitiveSequenceですが、Type ParameterにSingleTraitやMaybeTraitなどを渡すことによって、利用できる機能が変わっていきます。 このような実装方法を利用し、機能を良しなに分けていく方法についてお話できればと思います。