Control.Monad.HT

(<=<)

repeat

until

untilM

iterateLimit

iterateLimitM

andLazy

orLazy