All/Any proposal
In short:
Drop the syntax (x=a,b,c), (x==a,b,c), (x!=a,b,c), (x!==a,b,c).
Introduce the macro all() and any(); then x=a,b,c could be rewritten as x=any(a,b,c); x!=a,b,c could be rewritten as x!=all(a,b,c).
all() and any() accepts a sequence of scalar values, an array value or a plural value. Thus one may write x!=all(1,3,5,7,9), y=any(array(2,4,6,8)), z>all(plural_link.t).
The syntax scalar <op> any(sequence), scalar <op> all(sequence) is allowed, where <op> is any of =, !=, <, <=, >, >=. Support for the operations ==, !==, ~, ~~, !~, !~~ is under the question: == and !==, because of inadequate PostgreSQL support, ~, ~~, !~, !~~ because of their doubtful usefulness. The form any(sequence)~pattern could be much more useful, but, unfortunately, it is hardly possible to implement it in PostgreSQL.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)