複数のプロトコルに適合する型、という書き方
最近知りました。
//: Playground - noun: a place where people can play protocol Animal { func run() } protocol Vehicle { func drive() } struct Nekobasu: Animal, Vehicle { func run() { } func drive() { } } let bus: protocol<Animal, Vehicle> bus = Nekobasu() bus.drive() // ok bus.run() // ok