Scala 3. Context bound and type lambda
Learning Scala 3. Notice type projection + context bound in monadWriter trait Monoid[A] { def zero: A def append(a1: A, a2: A): A } trait Monad[F[_]] { def unit[A](a: A): F[A] def flatMap[A, B](fa: F[A])(f: A => F[B]): F[B] def map[A, B](fa: F[A])(f: A => B): F[B] = { flatMap(fa)(a => unit(f(a))) } } given… Read More Scala 3. Context bound and type lambda