Name: Anonymous 2009-10-05 12:37
How the fuck do you write a pointless concatMapM?
concatMapM f xs = do
xs' <- mapM f xs
return $ concat xs'liftM concat . mapM((return . concat) =<<) . mapM(Monad ((->) [a])) => (a -> [b]) -> [a] -> [b]