I can see that we can do higher kinded types ( * -> *) -> *
in Scala and Haskell and other languages. I'm looking for a simpler vanilla implementation of just the basic static type checking system - perhaps in Prolog or MiniKanren.
My question is: Is there an implementation of higher kinded types in typed lambda calculus?