Core concept

class Box[+T](val t: T)  // covariant
class Function1[-I, +O]  // contravariant in, covariant out
Advertisement

How it works

Variance rules complex. Compiler enforces.

Advertisement

Trade-offs + gotchas

Reusable data structures. FP abstractions.