// persistable (if you set "operation", make sure it's with a // persistable object) sclass AllOnAllOperation implements Steppable { Producer> allOnAll; // e.g. an instance of AllOnAll *() {} *(Producer> *allOnAll, IVF2 *operation) {} persistent swappable void operation(A a, B b) {} public bool step() { Pair p = allOnAll.next(); if (p == null) false; operation(p.a, p.b); true; } }