繁体   English   中英

同构类型的Cat类型类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM