mutate

inline suspend fun <V> mutate(crossinline update: (T) -> V): V