:: f (Maybe a) -> f a package:extra

Keep running an operation until it becomes a Just, then return the value inside the Just as the result of the overall loop.
Keep running an operation until it becomes a Nothing, accumulating the monoid results inside the Justs as the result of the overall loop.