sclass AllOnAllOperation implements Steppable { // e.g. an instance of AllOnAll Producer> allOnAll; *() {} *(Producer> *allOnAll, IVF2 *operation) {} swappable void operation(A a, B b) {} public bool step() { Pair p = allOnAll.next(); if (p == null) false; operation(p.a, p.b); true; } }