У меня есть этот код, который компилируется и работает отличноCats: как найти конкретный тип из implicits
import cats.implicits._
Cartesian[ValidResponse].product(
getName(map).toValidated,
readAge(map).toValidated
).map(User.tupled)
Однако мне не нравится импорт cats.implicits._
, потому что есть только слишком много классов там. Я попытался импортировать определенные вещи, связанные с картезианцами, такие как
import cats.implicits.catsSyntaxCartesian
import cats.implicits.catsSyntaxUCartesian
import cats.implicits.catsSyntaxTuple2Cartesian
Но это не сработало. Как новичок я нахожу, что имплицитные импорты очень сбивают с толку, потому что их просто тысячи, а имена не очень очевидны. Моя единственная альтернатива - импортировать всю вселенную на import cats.implicits._
и перестать думать об этом.
Фактически у меня есть более широкая путаница в отношении cats.implicits
, cats.instances._
и cats.syntax._
. Пока я просто импортирую их через пробную версию и ошибку. Я не уверен, когда им нужно импортировать.
+1, что большинство библиотек злоупотребляют implicits как это дело никто не. Мое самое большое домашнее животное - ваш код может сломаться, если вы измените импорт или переформатируете код, а среда IDE удалит импорт подстановочных знаков. –