Advanced Haskell study (Monads, Monad Transformers, Type Classes etc)