observable

fun <S, T> observable(initial: T, onChange: S.(old: T, new: T) -> Unit): ReadWriteProperty<S, T>
fun <S, T> observable(initial: T, observers: Iterable<PropertyObserver<S, T>>): ReadWriteProperty<S, T>
fun <S, T> observable(initial: T, observers: Iterable<PropertyObserver<S, T>>, onChange: (old: T, new: T) -> Unit): ReadWriteProperty<S, T>