package OCanren-ppx
Implementation of miniKanren relational (logic) EDSL: PPX extensions
Install
Dune Dependency
Authors
Maintainers
Sources
0.3.0.tar.gz
sha256=eaf9624bbdbae8050eb43a48c0e79e97160b83b6f65a543ee1beca4c9f4ff4b2
sha512=e55dd7a3026b1dedcd37f55181059dfa44ad6976d241a1199246ee3c1684dcfdf1ae0c1da32165b5b2eb5748cfc57c906a0f0ebab56d03035a5bb87187a63cf7
Description
PPX rewriters for writing relational programs more conveniently.
ppx_fresh
-- a clone of original miniKanren syntax
fresh (x...) goal
expands into
Fresh.numeral (fun x ... -> goal)
ppx_distrib
for easier generation of type-safe smart constructors and reifiers...
[%%distrib type nonrec _ t = fully_abstract_type type ground = ... ]
ppx_repr
for testing. ExpandsREPR(expr)
to(string_of_expr expr, expr)
Published: 03 May 2022
README
README.md
OCanren
is a strongly-typed embedding of relational programming language miniKanren into OCaml. Nowadays, the implementation of OCanren
strongly reminds faster-miniKanren. Previous implementation was based on microKanren with disequality constraints.
See installation instructions, API documentation for more details, and ReadTheDocs for detailed information.
Check our template repository for OCanren projects for faster startup!
Installation
OCanren
is available in main OPAM repository
opam install OCanren --yes
To try out developer version use
opam pin add OCanren --dev-repo --yes
Dependencies (7)
- ppx_expect
- ppx_inline_test
-
base
< "v0.17"
-
ppxlib
>= "0.22"
- dune-configurator
-
ocaml
>= "4.10"
-
dune
>= "2.9"
Dev Dependencies (1)
-
odoc
with-doc
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page