numeric-prelude-0.0.2: src/NumericPrelude/Monad.hs
module NumericPrelude.Monad where
{- | repeat action until result fulfills condition -}
untilM :: (Monad m) => (a -> Bool) -> m a -> m a
untilM p m =
do x <- m
if p x
then return x
else untilM p m