code: public static <T> Collection<T> intersect(Iterable<T> left, Iterable<T> right, Comparator<T> comparator) {
          return intersect(asCollection(left), asCollection(right), comparator);
      }
docs: Create a Collection composed of the intersection of both iterables.  Any
  elements that exist in both iterables are added to the resultant collection.
  For iterables of custom objects; the objects should implement java.lang.Comparable
  <pre class="groovyTestCase">assert [3,4] == [1,2,3,4].intersect([3,4,5,6], Comparator.naturalOrder())</pre>
  
  @param left  an Iterable
  @param right an Iterable
  @param comparator a Comparator
  @return a Collection as an intersection of both iterables
  @since 2.5.0