Protocols are full-fledged types