:: Monad m => (a -> m Bool) -> [a] -> m (Maybe a) package:monad-loops

return the first value from a list, if any, satisfying the given predicate.