У меня есть следующее определение функции:
private val checkSapHealth: IO[ServerHealth] =
BlazeClientBuilder[IO](global).resource.use { client =>
discovery
.senderAddr
.flatMap { addr =>
client
.get(addr.url |+| addr.health) { res =>
res.status match {
case Ok =>
IO(ServerOnline)
case _ =>
IO(ServerOffline)
}
}
.timeout(2.second)
.recover {
case _: Throwable => ServerOffline
}
}
}
Я хотел бы заменить конкретный тип с IO
на F[_]
, чтобы сделать его более абстрактным.Проблема здесь в строке:
IO(ServerOnline)
Вопрос в том, как сделать так, чтобы
F(ServerOnline)