Different ways to understand a monad
kubuszok.com