extension [A](io: IO[A]) {
def trace: IO[A] =
for {
res <- io
_ = println(s"[${Thread.currentThread().getName}] " + res)
} yield res
}
Should read:
extension [A](io: IO[A])
def trace: IO[A] = for {
res <- io
_ <- IO.println(s"[${Thread.currentThread.getName}] " + res)
} yield res