OCanren-ppxversion
Implementation of miniKanren relational (logic) EDSL: PPX extensions
PPX rewriters for writing relational programs more conveniently.
1) ppx_fresh
-- a clone of original miniKanren syntax
fresh (x...) goal
expands into
Fresh.numeral (fun x ... -> goal)
2) ppx_distrib
for easier generation of type-safe smart constructors and reifiers...
[%%distrib type nonrec _ t = fully_abstract_type type ground = ... ]
3) ppx_repr
for testing. Expands REPR(expr)
to (string_of_expr expr, expr)
Authors | Dmitrii Kosarev https://github.com/Kakadu and JetBrains Research https://research.jetbrains.org |
---|---|
License | LGPL-2.1-only |
Published | |
Homepage | https://github.com/JetBrains-Research/OCanren |
Issue Tracker | https://github.com/JetBrains-Research/OCanren/issues |
Maintainer | Dmitrii Kosarev Kakadu@pm.me |
Dependencies |
|
Source [http] | https://github.com/JetBrains-Research/OCanren/archive/refs/tags/0.3.0.tar.gz sha256=eaf9624bbdbae8050eb43a48c0e79e97160b83b6f65a543ee1beca4c9f4ff4b2 sha512=e55dd7a3026b1dedcd37f55181059dfa44ad6976d241a1199246ee3c1684dcfdf1ae0c1da32165b5b2eb5748cfc57c906a0f0ebab56d03035a5bb87187a63cf7 |
Edit | https://github.com/ocaml/opam-repository/tree/master/packages/OCanren-ppx/OCanren-ppx.0.3.0/opam |