Is this defined anywhere in base, and if not could it be placed in Control.Monad? I often find myself writing: fmap (mu bar) (foo zot) Then I decide to change the type of x, so instead I want to just write: bind (mu bar) (foo zot) Which is just like fmap but the function can run in the monad. Similar to traverse: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) As someone who isn’t a fan of operators, I generally am appreciative of alternative regular plain English word versions of functions, which I find easier to type, read and edit. Currently without defining such a handy name, I have to transform the code to this: mu bar =<<foo zot The name for this function is a no-brainer: bind :: Monad m => (a -> m b) -> m a -> m bbind = (=<<) For comparison, the not-very-pleasant <$> and <*> each have word alternatives, fmap and ap. Even <> has mappend. I don’t hold much hope for this, Haskellers love operators as much as Perl programmers so few on this list will see the value in plain old words, but at least I can link to this email in the archives for future reference. Ciao