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