code: public Stream<T> separate(Iterable<T> from) {
          final ArrayList<T> list = ToArrayList.<T>toArrayList().call(from);
          return filter(new Func1<T, Boolean>() {
              @Override
              public Boolean call(T it) {return !list.contains(it);}
          });
      }
docs: Returns a stream that includes only that items of the current stream that do not
  exist in a given stream.
  
  @param from a stream of values that should be separated from the current stream.
  @return a stream that includes only that items of the current stream that do not
  exist in a given stream.