Oℕ
(fx1, a, fx2) =>
b = f(a)
(fy1, fy2) = eat(fx1, fx2)
(fy1, b, fy2)
Size: a a a
Oℕ
(fx1, a, fx2) =>
b = f(a)
(fy1, fy2) = eat(fx1, fx2)
(fy1, b, fy2)
Oℕ
assocL >>> swap
x id >>> assocR >>> f x eat >>> assocL >>> swap x id
Oℕ
Oℕ
Oℕ
V
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
trait DAG[Shit[A, B]]
: def id[A]: Shit[A, A]
def andThen[A, B, C](x: Shit[A, B], y: Shit[B, C]): Shit[A, C]
Oℕ
trait DAG[Shit[A, B]]
: def id[A]: Shit[A, A]
def andThen[A, B, C](x: Shit[A, B], y: Shit[B, C]): Shit[A, C]
trait DAG[Vazhno[_], Business[A, B]]:
def id[A: Vazhno]: Business[A, A]
def andThen[A: Vazhno, B: Vazhno](x: Business[A, B], y: Business[B, C]): Business[A, C]
Oℕ
trait DAG[Vazhno[_], Business[A, B]]:
def id[A: Vazhno]: Business[A, A]
def andThen[A: Vazhno, B: Vazhno](x: Business[A, B], y: Business[B, C]): Business[A, C]