MonadとComprehension

HaskellでのMonadの解説を見ると、どれも先にMonadの意味からはいっている。そうじゃなく、先にComprehensionの理解をさせて(素数生成とか)、その後でList Monad、その他MonadMonadそのもの、といった順にやっていくほうが理解しやすいんじゃないかと思う。とくに別のプログラミング言語を知っている人には。

どこかに、その手順での解説文ないかな。。。