型としてのプロトコル (Protocols as Types)