moonlite:
On Mon, 2006-11-13 at 13:15 +1100, Donald Bruce Stewart wrote:
[snip]
Along with the useful control combinator:
forever :: (Monad m) => m a -> m ()
[snip]
+-- | @'forever' act@ repeats the action infinitely. +forever :: (Monad m) => m a -> m () +forever a = a >> forever a
I would personally rather see repeatM and repeatM_ like the replicateM/replicateM_ pair already in Control.Monad.
I implement them like this: repeatM = sequence . repeat repeatM_ = sequence_ . repeat
Google CodeSearch tells me it's the way replicateM was implemented too: http://www.google.com/codesearch?hl=en&lr=&q=replicateM+file%3A%5C.hs% 24&btnG=Search
Btw, i hope it is ok to give my opinion on this. Im asking since im not a library developer or anything just a normal programmer.
On this topic, we can go back to: http://www.mail-archive.com/cvs-all@haskell.org/msg26511.html However, it was pointed out that repeatM is next to useless, and it is traditional to use 'forever' for repeatM_ (see for example "Tackling the Awkward Squad", and http://haskell.org/haskellwiki/Roll_your_own_IRC_bot That being said, repeatM_ isn't too bad, should people prefer it. -- Don