Control.Monad.HT
(<=<)
repeat
untilM
until
iterateLimitM
iterateLimit
andLazy
orLazy