package OCanren-ppx
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Implementation of miniKanren relational (logic) EDSL: PPX extensions
Install
dune-project
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_distribfor easier generation of type-safe smart constructors and reifiers...
[%%distrib type nonrec _ t = fully_abstract_type type ground = ... ]
ppx_reprfor testing. ExpandsREPR(expr)to(string_of_expr expr, expr)
Published: 03 May 2022
README
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 --yesTo 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