@Override public T determineHead() { return !one.isEmpty() ? one.head() : two.head(); }
@Override public Stream<T> determineTail() { return !one.isEmpty() ? new Concat<T>(one.tail(), two) : two.tail(); }
@Override public boolean determineIsEmpty() { return one.isEmpty() && two.isEmpty(); }