Control.Monad.Trans.Loop
data LoopT c e m a
stepLoopT
continue
exit
continueWith
exitWith
foreach
while
doWhile
once
repeatLoopT
iterateLoopT
liftLocalLoopT