until -package:numeric-prelude -package:util -package:hedgehog -package:yesod-paginator -package:xmonad-contrib package:monad-loops

Run the supplied Maybe computation repeatedly until it returns a value. Returns that value.
Execute an action repeatedly until the condition expression returns True. The condition is evaluated after the loop body. Collects results into a list. Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Execute an action repeatedly until the condition expression returns True. The condition is evaluated after the loop body. Collects results into a MonadPlus value. Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Execute an action repeatedly until the condition expression returns True. The condition is evaluated after the loop body. Discards results. Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Execute an action repeatedly until its result satisfies a predicate, and return that result (discarding all others).
Analogue of (until) Yields the result of applying f until p holds.