until -package:monad-loops

until p f yields the result of applying f until p holds.
until p f yields the result of applying f until p holds.
repeat action until result fulfills condition
until p f yields the result of applying f until p holds.
Produce until the given event occurs. When it occurs, inhibit with its value forever.
  • Depends: now until event occurs.
  • Inhibits: forever after event occurs.
An until command.
Repeatedly run a computation until it produces a Just value. This can be useful when paired with a monad that has side effects. For example, we may have genId :: IO (Maybe Id) that uses a random number generator to allocate ids, but fails if it finds a collision. We can repeatedly run this with
retract (untilJust genId) :: IO Id
Keep running an operation until it becomes a Just, then return the value inside the Just as the result of the overall loop.
Deprecated: use M.until
Repeat a
Repeat action until f does not give Nothing when applied to result.
Repeat action until predicate f is True when applied to result.
This utility function run a list of IO actions and returns the first that return a Just, if no one does, returns Nothing
Keep running an effectful computation until it returns a Right value, collecting the Left's using a supplied Monoid instance.
This function makes some default choices on the modifyInspectGuarded machinery: convergence is assessed using the squared L2 distance between consecutive states, and divergence is detected when this function is increasing between pairs of measurements.
untilConvergedG0 is a special case of untilConvergedG that assesses convergence based on the L2 distance to a known solution xKnown
", monadic version
Similar to Yampa's delayed switching. Loses a b in case of an exception.
Run the first msf until the second one produces True from the output of the first.
Create a new serial context by moving the focus backward and collecting nodes until the scraper matches the focused node. The serial scraper is then executed on the collected nodes.