Type Level Programming in Haskell
That's the type-level! By using more powerful types, you can express more invariants and properties about your code in a way that can be checked by the compiler. This course offers a deep dive into many of the topics related to type-level programming