
At 20:52 06/06/03 +0200, Ralf Hinze wrote:
class FunctorM t where fmapM :: Monad m => (a -> m b) -> (t a -> m (t b)) fmapM_ :: Monad m => (a -> m b) -> (t a -> m ()) fmapM_ f t = fmapM f t >> return ()
The `fmapM' function is also known as a monadic map. It can be defined in a generic way for every Haskell data type. It's in the library of Generic Haskell (called mapMl):
So much to learn! I must try and read it all. One day. A brief chase of that link didn't show up anything that was obviously about monadic maps... do you have any more specific links?
As an aside, gmap and friends won't fit the bill, as they work on types rather than functors.
As it happens, I think what I described was based on the type rather than
the Functor (the message subject may have been misleading), because I
didn't actually use the existing fmap definition, but defined a new
function with certain similarities.
#g
-------------------
Graham Klyne