typealias RegistrationFunction = (clauseObject: Any, select: SelectInstance<*>, param: Any?) -> Unit(source)

The registration function specifies how the select instance should be registered into the specified clause object. In case of channels, the registration logic coincides with the plain send/receive operation with the only difference that the select instance is stored as a waiter instead of continuation.