[英]Cats typeclass for isomorphic types
我应该使用哪种cats typeclass来编码两种同构类型(即可以来回转换而没有效果)
我想将类型的分解编码为另外两个的元组: A <=> (B, C)
显然,类型类应为转换的每个方向公开两个函数,理想情况下应提供隐式方法以方便转换。 像这样的东西:(但找不到)
trait Iso[A,B] {
def to(a: A):B
def from(b: B): A
}
您在寻找cats.evidence.Is
吗?
type A
type B
type X = Is[A, B] // A Is B
val a: A = ???
val b: B = ???
val x: A Is B = ???
val y: B Is A = ???
x.coerce(a): B
y.coerce(b): A
它类似于scalaz.Leibniz
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.