invoke

abstract operator override fun invoke(): T

Returns the current value of the stream


abstract operator fun invoke(next: T)

Sends the next value to the stream


open operator fun invoke(block: (T) -> T)

Calls the block with the current value of the stream and sends to return value to the stream.

The new value is only sent when it is different from the current value.