The projection and selection operators (e1.{e2} and e1.{?e2}), and the in operator, all treat one of their arguments as a collection and walk it. This is done differently depending on the class of the argument:
Java arrays are walked from front to back
Members of java.util.Collection are walked by walking their iterators
Members of java.util.Map are walked by walking iterators over their values
Members of java.util.Iterator and java.util.Enumeration are walked by iterating them
Members of java.lang.Number are "walked" by returning integers less than the given number starting with zero
All other objects are treated as singleton collections containing only themselves