Considering these naming conventions:
http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Monad.html#3

• A postfix 'M' always stands for a function in the Kleisli category: The monad type constructor m is added to function results (modulo currying) and nowhere else. So, for example,

  filter  ::              (a ->   Bool) -> [a] ->   [a]
  filterM :: (Monad m) => (a -> m Bool) -> [a] -> m [a]

• A postfix '_' changes the result type from (m a) to (m ()). Thus, for example:

  sequence  :: Monad m => [m a] -> m [a]
  sequence_ :: Monad m => [m a] -> m ()

• A prefix 'm' generalizes an existing function to a monadic form. Thus, for example:

  sum  :: Num a       => [a]   -> a
  msum :: MonadPlus m => [m a] -> m a

replicateM has the following type:

  replicateM :: Monad m => Int -> m a -> m [a]

Am I missing something or should this have been called mreplicate?

greetings,
--
Sjoerd Visscher
sjo...@w3future.com_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to