A port of minikanren to Bigloo Scheme
Scheme Makefile KiCad Layout
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


bkanren Readme


bkanren is a port of minikanren as found at https://github.com/miniKanren/miniKanren to Bigloo Scheme. For detailed information on minikanren, please visit http://minikanren.org/.

It supports the following operators:

Logical Operators

  • fresh
  • eigen
  • conde

Extra-logical Operators

  • project
  • ground?

Interface Operators

  • run
  • run*

Constraint Operators

  • =/=
  • symbolo
  • numbero
  • stringo
  • absento

Operators from The Reasoned Schemer

  • caro
  • cdro
  • conso
  • nullo
  • eqo
  • pairo
  • listo
  • lolo
  • twinso
  • listofo
  • loto
  • membero
  • eq-caro
  • memo
  • rembero
  • appendo
  • unwrapo
  • swappendo
  • flatteno
  • flattenrevo
  • anyo
  • nevero
  • alwayso
  • salo


Both the Bigloo native and jvm backends are supported. To build the native libraries, just execute


To build the jvm libraries, execute

make jvm

To build both, execute

make all


To Install the libraries, execute

make install

This by default installs the libraries into the directory /usr/lib/bigloo/. If you have Bigloo installed to a different prefix, execute

make install DESTDIR=/path/prefix

This will result in the libraries being installed to /path/prefix/lib/bigloo/.


The bkanren library can be dynamically loaded into the interpretor with

(library-load 'bkanren)

If you have not installed the bkanren library in a standard location, you may need to pass path as a second argument.

(libary-load 'bkanren "/path/to/libdir")