假设我开发了一个新的公共数据结构,我们称之为FancyList
。它没有外部依赖,每个人都喜欢它。
这个 FancyList
原来是 Functor
、Monad
、MonoidK
和 Traverse
。
为这些类型类向我的用户提供 cats
实例的最佳方式是什么?我认为我可以放置它们的方式:
在同一个图书馆
cats
的用户现在依赖于这个库。源代码也让他们更加困惑。FancyList
的伴生对象中,隐式解析会自动找到它们,而不需要用户显式导入隐式(同样的方式没有import cats.implicits._
上的实例需要 NonEmptyList
)在新图书馆
import cats.implicits._
用于标准库结构的实例)。此外,如果下个月用户要求支持 scalaz
怎么办?哪种方法更合适?
总的来说,我的问题是: