What are higher-rank types and what are they good for?
Basic polymorphism is easy to learn, but once you allow polymorphic types to be nested it becomes surprisingly subtle. I strive to keep the type system simple, but maybe this is too good to leave out.