typeclassopedia notes and exercises from http://blog.sigfpe.com/2007/04/trivial-monad.html https://wiki.haskell.org/typeclassopedia