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.

Implementation of Norvig's spell checker in Haskell

Another Haskell version of Peter Norvig's spelling corrector, illustrating list monads, type classes and polymorphic programming.

The Reader and Writer Monads and Comonads

The Reader and Writer monad are well known, but I would like to present their comonadic counterpart.