Oℕ
Size: a a a
Oℕ
Oℕ
Oℕ
Oℕ
sealed trait Foo
case class Bar(x: Int, left: Foo, right: Foo) extends Foo
case object Baz extends Foo
trait FooP[-A, +B]{
def bar(x: Int, left: A, right: A): B
def baz: B
}
type Foo = Layer[FooP]
sealed trait FooF[+A]
case class BarF[+A](x: Int, left: A, right: A) extends Foo[A]
case object BazF extends FooF
[Nothing]
тогда этот FooP[A, B]
то ни что иное как FooF[A] => B
Oℕ
Oℕ
Rep
Oℕ
Oℕ
Oℕ
KS
Oℕ
Oℕ
KS
KS
KS
C
(