code: public Stream<T> distinct() {
          final ArrayList<T> passed = new ArrayList<>();
          return filter(new Func1<T, Boolean>() {
              @Override
              public Boolean call(T value) {
                  if (passed.contains(value))
                      return false;
                  passed.add(value);
                  return true;
              }
          });
      }
docs: Returns a new stream that filters out duplicate items off the current stream.
  <p/>
  This operator keeps a list of all items that has been passed to
  compare it against next items.
  
  @return a new stream that filters out duplicate items off the current stream.