Added new `all` and `any` unary operators that take something enumerable (such as a list, set or generator) and return a boolean (true or false) indicating if all or any of the elements are true. These operators increase expressiveness in conditions. For example, a contract might use these operators:
def foo(items as IList<of Item>)
require all for item in items get item.name.trim.length > 0
The general form is:
all <enumerable> # --> bool
any <enumerable> # --> bool
These are general purpose expressions so they can be used with "if" statements, "while" statements, "assert", "print", "trace", etc.
As mentioned before, it's tempting to consider other, more expressive syntactic forms for these operators as seen below, but for now I'm refraining.
require all numbers > 0
require for item in items all item.name.trim.length > 0