Why it matters

Metaprogramming underlies many Scala libraries. Understanding enables reading + writing.

Advertisement

The architecture

Scala 3: 'inline def' + quotes '${ ... }' + splices '${ ... }'.

Compile-time evaluation.

Scala metaprogramminginline + quotesScala 3 macrosReflectionruntime type infoDerivationauto instancesScala 3 macros more principled than Scala 2 def macros; safer to use
Metaprogramming tools.
Advertisement

How it works end to end

Uses: JSON derivation (Circe), typeclass derivation (Cats), config generation.

Mirrors: compile-time reflection.

TypeTest: runtime type checks with static guarantees.