a
Size: a a a
a
I
I
trait IsoF[F[_], T1, T2] {
def to(in: T1): F[T2]
def from(in: T2): F[T1]
}I
I
IsoF[F[_], T1, T2] <=> IsoF[F[_], T2, T1] были и еще что-то полезное. ну как-то не вериться что мне одному такое понадобилосьa
F: Functor: Applicative: Monad, будет иметь разные инстансыa
IsoF[F, A, B] ~ Iso[F[A], F[B]], т.е. по-крайней мере это категорияa
a
a
a
a
trait JsonCodec[A] {
def to(a: A): JsValue
def from(js: JsValue): Either[E, A]
}a
a
a
Fλ
a
G[_]a
IsoF[Either[E, ?], Id, A, JsValue]a
I