object Sequential extends Scheduler {
      def invokeParallelOperation[T, R](stealer: Stealer[T], kernel: Kernel[T, R]): R = {
        val node = new Node[T, R](null, null)(stealer)
        while (stealer.state == Stealer.AvailableOrOwned) {
          val chunksize = stealer.nextBatch(Int.MaxValue)
          kernel.apply(node, chunksize)
        }
      }
    }

Note: potentially `T` and `R` need specializing here when applying kernels to only few elements!