code: public static <T> ImmutableSet<T> differenceAsSets(Iterable<T> left, Iterable<T> right) {
      return Sets.difference(ImmutableSet.copyOf(left), ImmutableSet.copyOf(right)).immutableCopy();
    }
docs: Returns all items found in the {@code left} iterable not found in the {@code right}.  If the
  iterables are not deterministic, this will reflect a single pass through each.  This is not a
  view.