GEIESMONADS TRAINING - This page is a complete running implementation of the code presented at

It features a chainable state monad, though