A step which is a disjunction of other steps is matched as soon as one of the steps of the disjunction is matched.

Disjunctions are written with the infix symbol || (or the constructor Or).

For instance, the following step will be matched when either a proposal of round 0 is sent or a proposal of round 1 is sent.

fn main() {
propose __ __ (round 0) __ [__] ||
propose __ __ (round 1) __ [__]