a-foundation/src/main/java/com/ajjpj/afoundation/collection/ACollectionHelper.java
public static <T, E extends Throwable> AOption<T> find(Iterable<T> coll, APredicate<? super T, E> pred) throws E {
        for(T o: coll) {
            if(pred.apply(o)) {
                return AOption.some(o);
            }
        }
        return AOption.none ();
    }
public static <T, E extends Throwable> AOption<T> find(Iterable<T> coll, APredicate<? super T, E> pred) throws E {
        for(T o: coll) {
            if(pred.apply(o)) {
                return AOption.some(o);
            }
        }
        return AOption.none ();
    }
Returns an element of a collection that matches a predicate, if any, or AOption.none() if there is no match.