In the Advanced Swift course you mention an Existential Type.
Could you explain in detail what is/are Existential Type(s)? What are their counterparts? I can’t find any easy to understand explanation of this concept in Swift. How and why to use them?
Here is a good quote about existential types: “Generally speaking existentials allow us to define type variables using type requirements. We can use these type variables throughout our program without knowing which concrete underlying type implements the requirements.”. Basically protocol in swift is an existential type.
You could also take a look at this article: Exploring Existential Types With Swift | by Matthew Doig | Medium