Hello Haskell gurus,

I am trying to understand "kind"

Prelude> :k Maybe
Maybe :: * -> *
Prelude> :k (->)
(->) :: ?? -> ? -> *

What are the question marks? Why are they different from *? How is this related to rank-2 polymorphism?

Thanks in advance,

Regards,
Amitava Shee