If p is an iterator, the following semantics are supported,
where
x is an item pointed by the iterator,
q is another iterator,
f is a data field in a struct,
n is an integer number.