Silence protocol warnings

A protocol doesn’t need to be a class, it only needs to be callable.

Ping @tarnfeld @icio