This code supports my presentation about pragmatic use of Rank 2 types.
It is about interconnected concepts of type variables with reduced scope, first class polymorphic functions, and lambada calculus, and how all of this allows for interesting programming like lenses, natural transformations, and more.
It shows some usage patterns I have noticed in Haskell code I work on. These are not Haskell specific, e.g. you can use some Rank 2 patterns in TypeScript.