class ACollectionHelper {

    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 ();
    }

}