Haskell style monads and do-syntax for Elixir