!7 abstract sclass Continuation { } srecord Parallel(Continuation *options) > Continuation { } cmodule ContinuationTest > DynPrintLog { transient LS prefixes = ll("un", "pre"), suffixes = ll("able", "like"); start-thread { processInput("unrepairable"); } // original version without continuations void processInput(S input) { for (S s : prefixes) if (swic(input, s)) emit(joinPairWithSpace(pairOfNFirstAndRest(input, l(s)))); for (S s : suffixes) if (ewic(input, s)) emit(joinPairWithSpace(pairOfRestAndNLast(input, l(s)))); } Continuation processInput2(S input) { ret Parallel( ParallelFor(prefixes, s -> { if (swic(input, s)) emit(joinPairWithSpace(pairOfNFirstAndRest(input, l(s)))) }), ParallelFor(suffixes, s -> { if (ewic(input, s)) emit(joinPairWithSpace(pairOfRestAndNLast(input, l(s)))); }) ); } }