A Scala library of algebras, interpreters and examples for programming with monad coproducts, inspired by RĂșnar Bjarnason's talk Composable application architecture with reasonably priced monads.
This technique allows the generation of Abstract Syntax Trees (ASTs) from various distinct instruction sets using free monads and coproducts. This AST must be "run" or "processed" to do anything. The AST simply describes what must be done but doesn't specify how to do it, which is a powerful abstraction and makes testing much simpler.