package OCanren

  1. Overview
  2. Docs
Implementation of miniKanren relational (logic) EDSL

Install

Dune Dependency

Authors

Maintainers

Sources

0.3.0.tar.gz
sha256=eaf9624bbdbae8050eb43a48c0e79e97160b83b6f65a543ee1beca4c9f4ff4b2
sha512=e55dd7a3026b1dedcd37f55181059dfa44ad6976d241a1199246ee3c1684dcfdf1ae0c1da32165b5b2eb5748cfc57c906a0f0ebab56d03035a5bb87187a63cf7

Description

The family of miniKanren derivatives has many implementations. This one is typed embedding to OCaml. The original implementation for this is in scheme and can be found at https://github.com/michaelballantyne/faster-miniKanren .

Features:

  1. disequality constraints
  2. relational standard library: lists, nats

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

Dev Dependencies (3)

  1. odoc with-doc
  2. ocamlformat with-test & < "0.22"
  3. benchmark with-test

Used by (2)

  1. noCanren >= "0.3.0~alpha1"
  2. OCanren-ppx = "0.3.0~alpha1"

Conflicts

None