monads tutorial
more on monads