miniKanren is a logic/relational language. It's been used to solve questions related to programs. For example, once you give miniKanren a description of the untyped λ-calculus extended with integers you can ask it "give me programs that result in 2" and it'll enumerate programs from the constant "2" to "1 + 1" to more complicated versions using λ-expressions. It can even find quines (if the described language supports it).
The Nanopass Framework is built for that:
"The nanopass framework provides a tool for writing compilers composed of several simple passes that operate over well-defined intermediate languages. The goal of this organization is both to simplify the understanding of each pass, because it is responsible for a single task, and to simplify the addition of new passes anywhere in the compiler."
I'm going again, it was too fun/interesting to miss.
Count me in.
Around São Paulo, yes. Around LW, not much anymore, I mostly read it via feed reader.
FWIW we implemented the FDT, CDT, and EDT in Haskell a while ago.
https://github.com/DecisionTheory/DecisionTheory