See all the functions which are funM. mapM, replicateM, etc... For a newbie having to use a different function to apply to a monad vs. a pure function is confusing and not necessary.
It's like saying C++/Java etc. are confusing because you can only print certain values, but you can't print the print statement.