update

abstract fun update(newValue: T)
abstract fun update(newValueFunction: (T) -> T)