code: public <T> void spliterator(Spliterator<T> s, ResultStream<T> result)
    {
      ArrayList<Spliterator<T>> splits = new ArrayList<>();
      
      splits.add(s);
      
      int count = 2 * getTaskManager().getWorkers();
      split(splits, count);
      
      int size = splits.size();
      
      if (size == 1) {
        getTaskManager().run(new ComputeTask<T>(splits.get(0), result));
        // _workers.compute(splits.get(0), new ResultSinkWrapper<T>(result));
        return;
      }
  
      /*
      if (true) {
        throw new UnsupportedOperationException(L.l("fork unsupported for {0}", result));
      }
      */
      
      ServiceRefAmp serviceRef = ServiceRefAmp.current();
      
      //ResultStreamAmp<T> resultAmp = (ResultStreamAmp<T>) result;
      
      ResultStreamJoin<T> join = new ResultStreamJoin<T>(result, serviceRef.inbox());
      for (int i = 0; i < size; i++) {
        //resultSinkFork[i].begin(0);
        //_workers.compute(splits.get(i), new ResultSinkWrapper<T>(resultSinkFork[i]));
        
        getTaskManager().run(new ComputeTask<T>(splits.get(i), join.fork()));
      }
      
      join.ok();
    }
docs: /*
  public <T> void spliterator(Spliterator<T> iter, ResultStream<T> result)
  {
  spliterator(s.spliterator(), result);
  }