Mon Aug 3 02:19:54 EDT 2015

(a -> a -> m a ) -> m a -> m a -> m a

Does that work better to combine with applicative?

been there actually...

Copying the monadic values works (of course?), but will introduce
variables multiple times, one for each use.

add' x y = do
  x' <- x
  y' <- y
  add x' y'