public apply(action: handler(value: Int) (answer: Int), value: Int) (answer: Int) { answer = action(value) } public mapValues(values: List) (answer: List) { answer = each(calc.value.adjust, values) } public total(values: List) (answer: Int) { answer = reduce(add, values, 0) } add(value: Int, state: Int) (answer: Int) { answer = state + calc.value.adjust(value) } public verify() (answer: Bool) { answer = total([1, 2, 3]) == 9 }