code: public static Predicates<Object> in(Iterable<?> iterable)
      {
          if (iterable instanceof SetIterable<?>)
          {
              return new InSetIterablePredicate((SetIterable<?>) iterable);
          }
          if (iterable instanceof Set<?>)
          {
              return new InSetPredicate((Set<?>) iterable);
          }
          if (iterable instanceof Collection<?> && ((Collection<?>) iterable).size() <= SMALL_COLLECTION_THRESHOLD)
          {
              return new InCollectionPredicate((Collection<?>) iterable);
          }
          return new InSetIterablePredicate(UnifiedSet.newSet(iterable));
      }
docs: Creates a predicate which returns true if an object passed to accept method is contained in the iterable.