A collection binding: gathers every element matching the token into a list.
:propagates_empty? records the empty-collection rule. A pattern that introduces no
new variables has every variable fixed by the token. So it has exactly one group, and
it propagates [] when nothing matches. A pattern that introduces one groups by it
instead, and a group exists only where a fact created it — so there is no empty group
to propagate.