An implementation of the µKanren relational programming system in Rust.
Convenience macro for making state objects using the
A boxed goal for type erasure, constructed from
The current variable state of the miniKanren interpreter.
An object in µKanren that can be unified.
Trait representing an atomic type.
Trait for closures that can take fresh variables.
A goal that can be executed by the relational system.
A type that can be converted to a value.
Construct a cons cell from two values.
Goal that introduces inverse-η delay to handle infinite streams.
Goal for unifying two values.
Goal that introduces one or more fresh relational variables.
Construct a list out of cons cells.
Top-level entry point for running a goal with fresh variables.