total(values: List) (answer: Int) pure { answer = sum(values) } asyncTotal(values: List, delayed: false) (answer: Int) { answer = total(values) } asyncTotal(values: List, delayed: true) (answer: Int) { dever.task.sleep(0) answer = total(values) } syncPair(values: List) (answer: Int) { first_task = run(total(values)) second_task = run(total(values)) first_value = wait(first_task) second_value = wait(second_task) answer = first_value + second_value } asyncPair(values: List) (answer: Int) { first_task = run(asyncTotal(values, false)) second_task = run(asyncTotal(values, false)) first_value = wait(first_task) second_value = wait(second_task) answer = first_value + second_value } parallelSum(values: List) (answer: Int) { answer = parallel(total(values)) } blockedTotal(values: List) (answer: Int) { dever.time.sleep(0) answer = total(values) } blockingSum(values: List) (answer: Int) { answer = blocking(blockedTotal(values)) } cancel() (answer: Int) { stop(run(dever.task.sleep(60000))) answer = 1 } timer() (answer: Int) { dever.task.sleep(0) answer = 1 }