Level L2: Senior library designer

Variance annotations

Existential types (e.g., to interface with Java wildcards)

Self type annotations and the cake pattern for dependency injection

Here are some links

Structural types (aka static duck typing)

Defining map/flatmap/withFilter for new kinds of for-expressions

Extractors