# Is "Protocol Inheritance" the same thing as "Protocols conforming to Protocols"

**URL:** <https://forums.swift.org/t/is-protocol-inheritance-the-same-thing-as-protocols-conforming-to-protocols/43723>\
**Category:** Using Swift\
**Created:** [January 10, 2021, 12:10am UTC](https://forums.swift.org/t/is-protocol-inheritance-the-same-thing-as-protocols-conforming-to-protocols/43723 "2021-01-10T00:10:29Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![xwu](https://avatars.discourse-cdn.com/v4/letter/x/b487fb/32.png) [@xwu](https://forums.swift.org/u/xwu)\
**Post date:** [January 10, 2021, 1:36am UTC](https://forums.swift.org/t/is-protocol-inheritance-the-same-thing-as-protocols-conforming-to-protocols/43723/3 "2021-01-10T01:36:48Z")

</div>

> [@DandyLyons](#):
>
> But I'm confused. I'm not even trying to conform a protocol to a protocol. I'm trying to make protocol `Category` inherit from `Hashable` . Is that the same thing as **conforming a protocol to a protocol**? Why doesn't this protocol want to inherit?

To clarify, there are two things that look the same: the protocol `Category` and the existential type (also called protocol type) `Category`. Even though they look the same, they are actually two different things. When you use a protocol _as a type_, you are using the existential type. That existential type cannot conform to any protocols, even itself (i.e., `Category` does not conform to `Category`).

For more information, see the corresponding [educational note](https://github.com/apple/swift/blob/main/userdocs/diagnostics/protocol-type-non-conformance.md) for this topic.

> [@xAlien95](#):
>
> If there was an explicit way to refer to existential protocol types, e.g. using `any Category` , you would be able to explicitly add conformances.

That is not quite correct. Even if we change the spelling of existential types, it does not mean that you can conform such types to protocols; and even if we implement a feature permitting users manually to state such conformances, it does not mean that it is _possible_ (in fact, it is _impossible_) to write a conformance that can correctly conform an existential type to any arbitrary protocol. For one example, see the [educational note](https://github.com/apple/swift/blob/main/userdocs/diagnostics/protocol-type-non-conformance.md).

---

_[View the full topic](https://forums.swift.org/t/is-protocol-inheritance-the-same-thing-as-protocols-conforming-to-protocols/43723)._
