ΛВ
Size: a a a
ΛВ
NV
NV
NV
NV
Oℕ
trait Xtractor[X]{
type Repr
def xtractTypeClass[TC[_]](implicit tc: TC[Repr]): TC[X]
}
object Xtractor {
type Aux[A, B] = Xtractor[A] {type Repr = B}
implicit def estaticoXtractor[A, B](implicit c: Coercible[A, B]): Xtractor.Aux[B, A] = new Xtractor[B] {
override type Repr = A
override def xtractTypeClass[TC[_]](implicit tc: TC[A]): TC[B] = ???
}
}
case class Name(s: String)
object Name {
implicit def encoder(implicit xtractor: Xtractor[Name]): Encoder[Name] = xtractor.xtractTypeClass[Encoder]
}
ΛВ
ΛВ
w
NV
NV
ZM
D
D
ΛВ
ΛВ
D
D
ΛВ