Demo showing how to implement a type class that is cross-compilable between:
- Scala 2.12/2.13/3
- Scala/Scala.js/Scala Native
- with sanely automatic derivation - see Slow Auto, Inconvenient Semi presentation
- meaningful error messages
- logging enabled with
-X-macro-settings:fastshowpretty.logging=true
- using chimney-macro-commons
You can use it as a starting point (GitHub template) for your own macro-experiments.