In Haskell, when using typeclass, it is easy to declare constraint of its' instances' type kind.
class Functor (f :: * -> *) where
...
* -> * represents HKT (Higher-Kinded Types), this means any type conforming to Functor must be a HKT.
How can I achieve this with Swift's protocol ?