Heuristics for Monad Rules

Where do Haskell constructs such as the State, List, and Continuation monad really come from? This post explains the idea of a “functor adjunctions,” starting with a simple duality relation to show how the core properties of a monad naturally emerge. This reveals a mathematical blueprint that unifies some apparently very different concepts.


Type logic in Haskell

Type logic is the logic directly associated to types. It turns out that one can go quite far with regards to proving statements with Haskell. I show how to do that, and even how to prove statements in classical logic with Haskell.