Discharging channels
Values of a source can be terminated using methods such as .foreach, .toList, .pipeTo or .drain. These methods
are blocking, and hence don’t need to be run within a scope:
import ox.supervised
import ox.channels.Source
supervised {
val s = Source.fromValues(1, 2, 3)
s.toList // List(1, 2, 3)
}