This is a no-bullshit zone
Let's learn what Monads, Applicatives, and Functors are, only instead of relying on obscure functional vocabulary or category theory we'll just, you know, use plain english instead.
Functors are containers you can call
map on. That's it. Seriously.
A million words of category theory and Haskell examples to say Functors . . .
It's parameters all the way down
Update: You can read even more about type erasure with lots of example code
More specifically, what is type erasure in the context of Swift and Protocols . . .