Swift has a protocol in the standard library:
```swift
public protocol Error: Sendable {}
```
However, it's full of compiler magic that can't be inferred from that declaration alone.
Swift has protocol existential types spelled `any P`. For historical reasons, in Swift 5, some existentials can just be spelled `P` instead of `any P`. Most of these are laid out in this five-word box:
```
+--------+--------+--------+--------+--------+
| value or pointer | vtable | wtable |
+--------+--------+--------+--------+--------+