All Projects → dbuenzli → Rel

dbuenzli / Rel

Licence: isc
Relational programming for OCaml (unreleased)

Programming Languages

ocaml
1615 projects

Rel — Relational programming for OCaml

%%VERSION%%

Rel is a typed relational programming language embedded in OCaml. Its term language is arbitrarily extensible allowing clients to inject and project OCaml values and functions for seamless interaction between Rel and regular OCaml programs.

Rel is a typed and type-safe implementation of μKanren distributed under the ISC license. It depends on fmt.

Homepage: http://erratique.ch/software/rel

Minimal typed μKanren implementation

Consult mk.mli and mk.ml and its tests for an absolute minimal typed and type-safe μKanren in the spirit of the original one.

The implementation shows how to define an arbitrarily extensible typed term language and a simple API for typed reification of states. This is the core on which Rel adds a bit of convenience.

Other OCaml implementations of {mini,μ}Kanren are listed on the miniKanren website.

Installation

Rel can be installed with opam:

opam install rel

If you don't use opam consult the opam file for build instructions.

Documentation

The documentation and API reference is generated from the source interfaces. It can be consulted online or via odig doc rel.

Sample programs

If you installed Rel with opam sample programs are located in the directory opam var rel:doc.

In the distribution sample programs and tests are located in the test directory. They can be built and run with:

topkg build --tests true && topkg test 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].