code: private ArrayList<Range<T>> subtractContained(Range<T> contained)
      {
          ArrayList<Range<T>> difference = new ArrayList<Range<T>>(2);
  
          if (!left.equals(contained.left))
              difference.add(new Range<T>(left, contained.left, partitioner));
          if (!right.equals(contained.right))
              difference.add(new Range<T>(contained.right, right, partitioner));
          return difference;
      }
docs: Subtracts a portion of this range.
  @param contained The range to subtract from this. It must be totally
  contained by this range.
  @return An ArrayList of the Ranges left after subtracting contained
  from this.