Core concept

trait KV[F[_]] {
  def get(k: String): F[String]
  def put(k: String, v: String): F[Unit]
}
Advertisement

How it works

Type inference challenges. But increasingly standard for FP libraries.

Advertisement

Trade-offs + gotchas

Effect-polymorphic libraries.