Option<A> findLast(Function1<A, bool> p) { final it = reverseIterator(); while (it.hasNext) { final elem = it.next(); if (p(elem)) return Some(elem); } return none(); }