code: public static boolean contains(Iterable<?> iterable, Object value)
      {
          if (iterable instanceof Collection)
          {
              return ((Collection<?>) iterable).contains(value);
          }
          if (iterable instanceof RichIterable)
          {
              return ((RichIterable<?>) iterable).contains(value);
          }
          return IterableIterate.detectIndex(iterable, Predicates.equal(value)) > -1;
      }
docs: Returns true if the iterable contains the value.
  In the case of Collections and RichIterables, the method contains is called.
  All other iterables will force a complete iteration to happen, which can be unnecessarily costly.