1. What contributions have the authors mentioned in the paper "Memoizing a monadic mixin dsl" ?
The authors study the use of mixins in Haskell for a modular DSL for search heuristics used in systematic solvers for combinatorial problems, that generate optimized C++ code from a high-level specification.. The authors show how to apply memoization techniques to tackle performance issues and code explosion due to the highly recursive nature of the mixins.. Memoization of monadic components causes further complications for us to deal with.
read more
2. How can combinators introduce their own monad transformers?
Through existential types and the monad zipper, all combinators can introduce their own monad transformersto keep their own state throughout the code generation, without affecting any other transformers.
read more
3. What is the common way to obtain a code generator?
A code generator is obtained through mixin composition, simply using (◦):search2 :: Gen Identity search2 = fix (printM ◦ baseM )In the components the authors have seen so far, the monad type parameter m has not been used.
read more
4. What is the function that assigns the value of e to v?
The combinator let(v, e, s) introduces a new variable v, initialized to the value of expression e, in the subsearch s, while assign(v, e) assigns the value of e to v and succeeds.
read more


![Table 1)9. A first set includes the known problems golfers10, golomb11, open stacks and radiation[1], a second set contains artificial tests.](/figures/table-1-9-a-first-set-includes-the-known-problems-golfers10-2sb7wqp4.png)