maybe

fun <T : Any> maybe(block: (MaybeEmitter<T>) -> Unit): Maybe<T>