Skip to content

ukanrenix

Pure-Nix μKanren. Relational logic, weighted synthesis, and constraint rules — zero dependencies.

ukanrenix is a pure-Nix μKanren implementation. Write relational programs in Nix: unify terms, enumerate answers via lazy streams, rank solutions by cost, and propagate constraints — all as ordinary Nix expressions.

Relational

Run goals forward or backward. run n goalFn enumerates up to n answers as reified Nix values.

Weighted

Tropical semiring search. weight w goal scores answers. wrun returns top-n by ascending cost.

Constraints

CHR constraint propagation. typeOf, diseq, and custom predicates deferred until ground.

Gen Integration

Backward synthesis over gen-merge, gen-select, gen-scope, and gen-types ecosystems.