Well, my original post wasn't that negative ... Indeed "then f [by e]" seems a nice idea *but* the point was that I'd like to have this in any monad. The type of f in "then f" should be m a -> m b, not just m a -> m a, because then you don't need special syntax for "group", which is somewhat like [a] -> [[a]] ? J.W.