module default; const N = 2..max; global protocol MapReduce(role Worker[1..N]) { Init() from __self to __self; Map(S) from Worker[1] to __All; Reduce(T) from __All to Worker[1]; Finish() from __self to __self; }