An opaque existential value of a protocol type (e.g. `MemoryLayout<P>.size` for `protocol P {}`) reports 40 bytes on a 64-bit target. How is that storage partitioned?
protocol P {}
print(MemoryLayout<P>.size) // 40
print(MemoryLayout<P>.stride) // 40