и наличие баунда F[_]: Console не гарантирует, что для конкретной Console[Task] или F[_]: Sync .. Console[F], в том месте, где будет заимплементирована конкретная реализация, не будет http кола. Все сводится к некоторой дисциплине, относительно того, что делаешь (но с этого ведь и начинается любое фп на скале, ведь так?).
Даже в коке можно сделать багу без дисциплины
Он может быть и в Database, смысл не в этом, а в том, что ты ограничиваешь свой язык теми инстансами, что ты предоставляешь. Имея на руках Console, ты можешь только писать в консоль, даже если это какая-то удаленная консоль по http, но не можешь обращаться к базе данных. Имея на руках Sync, ты можешь и писать в консоль, и обращаться в БД, и общаться со всеми микросервисами и всё что можно. Возвращать ZIO — это то же самое, что пробрасывать Sync[F].
Разве какое-то программирование может обходиться без дисциплины?
Обсуждают сегодня