Я знаю, что могу получить идентификатор текущего выполняющегося волокна, позвонив
ZIO.descriptor.map(_.id)
Однако то, что я хочу, - это нечистая функция, которую я могу вызвать из кода побочного эффекта, давайте определим ее как
def getCurrentFiberId(): Option[FiberId]
так что
for {
fiberId <- ZIO.descriptor.map(_.id)
maybeId <- UIO(getCurrentFiberId())
} yield maybeId.contains(fiberId)
дает истину. Можно ли определить такую функцию, и если да, то как? Обратите внимание, что этот вопрос тесно связан с Как получить доступ к локальным данным волокна из побочного кода в ZIO.