What is the assumption made in "Learn You a Haskell" when deducing the kind?
In fact, the compiler does assume! But you can ask it not to with the PolyKinds extension. You can read about it in more detail here. With that extension turned on, the kind of Barry
will be forall k. (k -> *) -> k -> * -> *
.