Slide 114
              Slide 114 text
              
                  class Changing: Observable {
typealias ObservedValue = Value
private var accumulator: Value
private var changes: Changes
init
(observing observed: Observed,
startingFrom initial: Value,
accumulateWith accumulate:
(Observed.ObservedValue, Value) -> Value)
{
accumulator = initial
changes = Changes()
observed.observe(withContext: self){ (context, value in
context.accumulator = accumulate(value, context.accumulator)
context.changes.announce(change: context.accumulator)
}
}
}