Oℕ
class LiveConsole[F[_]: Sync] extends Console[F] {
def putStrLn(line: String): F[Unit] =
Sync[F].effect(println(line))
def getStrLn: F[String] =
Sync[F].effect(scala.io.StdIn.readLine())
}
Зачем к примеру сдесь implicit sync: Sync[F[_]], implicitly ведь нет, и ничто имплиситов не принимает