implements first(Predicate<E> func), last(Predicate<E> func), toList(), toUnmodifiableList()