

For programmers:
Write a function once. Run it forward, backward, or with missing inputs. My language lets you write ordinary Scheme-style pure functions and automatically reinterpret them as constraint relations. The same definition can compute outputs, solve for inputs, or fill in partial computations.
For PL researchers:
A relational reinterpretation of a pure Scheme subset. Programs are written in a functional style using integers, arithmetic, predicates, and and/or control flow. The compiler derives a constraint representation that supports inversion, partial evaluation, and relational execution without requiring a separate logic-language encoding.

lean->prolog->scheme
CURIOSITY -> BOOK/PAPERWHITE/MP3/PHONE -> DRAWING.TABLET -> PAPER -> TYPEWRITER -> EMAIL -> PDF -> MINDKASTEN -> KINDLE ->