/ posts
A walking tour of context parameters, KProperty0, definitely-non-null types, contracts, sealed scopes, explicit backing fields, fun interface, inline+reified and KSP — by building a multiplatform…
How to debug Scala 3 macros: profiling the compiler, print-debug helpers for types and ASTs, and attaching a JVM debugger to the compiler from Mill, sbt, scala-cli, VS Code or IntelliJ.
How to prove at compile time that a Scala 3 tuple contains only elements of a single type, using match types, opaque types, and clause interleaving.
A complete guide to setting up a Scala library project with scala-cli — formatting, testing, code coverage, Maven Central publishing, GitHub Actions CI, and Scaladoc deployment.
Automating type class derivation in Scala 3 using the Mirror API and compiletime utilities — replacing complex Scala 2 macro code with readable, type-safe compile-time logic.
How to extract method parameter defaults at compile time in Scala 3 using macros, the Selectable trait, and computed field names for full type safety.