srecord noeq StupidFib_collab(ICollab collab, int n, LongConsumer continuation) is Runnable { double timeout = 10.0; *(ICollab *collab, int *n) {} long get() { new Var var; continuation = result -> { var.set(result); collab.done(); }; collab.run(); ret waitForVarToBeNotNullWithTimeout(var, secondsToMS_int(timeout)); } run { if (n < 3) ret with continuation.accept(1L); LongPairCollector collector = new { void complete(long a, long b) { continuation.accept(add(a, b)); } }; collab.addWork(new StupidFib_collab(collab, n-1, collector.setterForA())); collab.addWork(new StupidFib_collab(collab, n-2, collector.setterForB())); } }