phantom
phantom copied to clipboard
Freestyle implementation of Phantom queries.
Looking forward to Phantom 3.x.x, we need to re-implementing the core query mechanism to run on Cats free and maybe freestyle frees as concrete backends with interpreters against known free libraries. The current version of phantom is a joke with respect to how functional it is, and several steps will be required to reach a 3.0.0
- Remove the EDSL entirely, in favour of working directly with encoded case classes.
- Unlike quill, we do not plan to go fully QDSL mode, and we will have an in between approach where the syntax language of CQL will still be fully replicated in Scala, just like what phantom attempts to do today.
- Replace execution backends and the complex poor man's Free Monad currently available via
QueryContextwith a simple implementation on top of Cats Free. - Research whether or not a Cats dependency with the now required
-Y-partial-unificationflag is a realistic goal that the audience would be happy with, and consider whether this forces us to finally drop the Scala 2.10 support we worked hard to keep alive until today. - Add in Support for Scala 2.13.