Baldrson writes: This is an interesting angle on relational programming: Relate a functional or even imperative language program to its outputs, provide constraints and then reverse to do fun things like generate all programs that say "I love you.", generate all Quines, etc. This is demonstrated in PolyConf 15: The Promise of Relational Programming / William Byrd. (The afore video link skips past the boring logic programming type stuff like reversible append.) But this is more than a mere novelty, as demonstrated in the final section of the presentation: Imperative programs (involving destructive assignment, error traps, etc.) can be interpreted under the relational paradigm to answer questions like, "What input conditions to this program yield this output condition?"