This is the si-kanren Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri May 15 13:01:55 2026 GMT+0.
The main system appears first, followed by any subsystem dependency.
si-kanrenA micro-Kanren implementation in Common Lisp
rgc
MIT
0.1.0
src (module).
Modules are listed depth-first from the system components tree.
si-kanren/srcsi-kanren (system).
si-kanren.lisp (file).
wrappers.lisp (file).
Files are sorted by type and then listed depth-first from the systems components trees.
si-kanren/src/si-kanren.lispsrc (module).
a-add (function).
a-add-entry (function).
a-entry (function).
bind (function).
call/fresh (function).
check-a/t->disequality (function).
conj (function).
disequality (function).
disj (function).
equalv? (function).
ext-s (function).
filter (function).
lvar (function).
lvar=? (function).
lvar? (function).
make-pred-a (function).
mapm (function).
mplus (function).
mzero (special variable).
normalize-d<s/t/a (function).
null? (function).
occurs? (function).
pair? (function).
pred-of (function).
reform-a (function).
reform-t (function).
subsumed-d-pr/a? (function).
subsumed-d-pr/t? (function).
subtract-s (function).
tag-of (function).
tag=? (function).
tag? (function).
ty-add (function).
ty-merge (function).
typeo (function).
unify (function).
unit (function).
walk (function).
si-kanren/src/wrappers.lispsi-kanren.lisp (file).
src (module).
a-of (function).
c-of (function).
call/empty-state (function).
coerce->l (function).
coerce->v (function).
conj+ (macro).
d-of (function).
disj+ (macro).
dotted-pair-p (function).
drop-pred-t/a (function).
eigenvalue (function).
empty-state (function).
equal-lists (function).
flat-d (function).
flatten (function).
l>v (function).
lvar-or-atom (function).
make-st (function).
member-nested (function).
mini-subsumes? (function).
mk-reify (function).
nlet-tail (macro).
norm-cons (function).
normalize (function).
normalize-a (function).
normalize-conde (function).
normalize-fresh (function).
normalize-lists-seen (function).
normalize-subsumed (function).
normalize-ty (function).
part (function).
part/a (function).
partition* (function).
prune-subsumed-minis (function).
pull (function).
reify-name (function).
reify-s (function).
reify-state/1st-var (function).
remove-subsumed (function).
runno (macro).
runno* (macro).
s-of (function).
s/c-of (function).
sort-part (function).
subsumed (function).
take (function).
take-all (function).
ty-of (function).
unused (function).
v>l (function).
walk* (function).
walk-queries (function).
zzz (macro).
Packages are listed by definition order.
si-kanrencommon-lisp.
a-add (function).
a-add-entry (function).
a-entry (function).
a-of (function).
bind (function).
c-of (function).
call/empty-state (function).
call/fresh (function).
check-a/t->disequality (function).
coerce->l (function).
coerce->v (function).
conj (function).
conj+ (macro).
d-of (function).
disequality (function).
disj (function).
disj+ (macro).
dotted-pair-p (function).
drop-pred-t/a (function).
eigenvalue (function).
empty-state (function).
equal-lists (function).
equalv? (function).
ext-s (function).
filter (function).
flat-d (function).
flatten (function).
l>v (function).
lvar (function).
lvar-or-atom (function).
lvar=? (function).
lvar? (function).
make-pred-a (function).
make-st (function).
mapm (function).
member-nested (function).
mini-subsumes? (function).
mk-reify (function).
mplus (function).
mzero (special variable).
nlet-tail (macro).
norm-cons (function).
normalize (function).
normalize-a (function).
normalize-conde (function).
normalize-d<s/t/a (function).
normalize-fresh (function).
normalize-lists-seen (function).
normalize-subsumed (function).
normalize-ty (function).
null? (function).
occurs? (function).
pair? (function).
part (function).
part/a (function).
partition* (function).
pred-of (function).
prune-subsumed-minis (function).
pull (function).
reform-a (function).
reform-t (function).
reify-name (function).
reify-s (function).
reify-state/1st-var (function).
remove-subsumed (function).
runno (macro).
runno* (macro).
s-of (function).
s/c-of (function).
sort-part (function).
subsumed (function).
subsumed-d-pr/a? (function).
subsumed-d-pr/t? (function).
subtract-s (function).
tag-of (function).
tag=? (function).
tag? (function).
take (function).
take-all (function).
ty-add (function).
ty-merge (function).
ty-of (function).
typeo (function).
unify (function).
unit (function).
unused (function).
v>l (function).
walk (function).
walk* (function).
walk-queries (function).
zzz (macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Add the constraint absento(tag, u) under substitution S. Returns a new A store, or "err" on violation.
Add (x,tag) to A if not already present (after walking keys through S).
T if v in walking l is another lvar
whether el is a member of l, el can be atom or cons, l can be list of atoms or not
m1 subsumes m2 if all pairs in m1 are also in m2.
Normalize the disequality store for *printing*.
IMPORTANT: a single disequality constraint (a mini-store) is a conjunction of
bindings. We must never split or partially drop bindings inside a mini-store,
otherwise we change the meaning of the constraint (e.g. ¬(x=9 ∧ y=w) becomes
¬(x=9)).
This function therefore only decides whether to keep or hide entire mini-stores based on what is reified in the answer.
Remove any mini-store that is a strict superset of another mini-store.
Canonicalize + propagate absento constraints under substitution S.
- If a constrained var becomes ground: fail iff it equals the forbidden tag.
- If it becomes a pair: propagate to car/cdr.
- If it aliases another var: move the constraint to the representative.
Returns normalized A, or "err".
Canonicalize + check the type store TY under substitution S.
Returns:
- a normalized TY list (possibly empty)
- the string "err" if a constraint is violated or conflicts arise
A TY entry is (lvar . (tag . pred)) i.e. (x tag . pred).
Given lists U and V (same length) representing a mini-store of equalities
((u1 . v1) (u2 . v2) ...),
return ’(()) if the conjunction is impossible under the absento store A
(therefore the disequality constraint is trivially satisfied).
Otherwise return the (walked) mini-store as a proper list of cons pairs.
IMPORTANT: must NOT return (unit ...) here.
Given lists U and V (same length) representing a mini-store:
((u1 . v1) (u2 . v2) ...),
return ’(()) if the conjunction is impossible under the type store TY
(therefore the disequality constraint is trivially satisfied).
Otherwise return the (walked) mini-store as a proper list of cons pairs.
NOTE: must NOT return (unit ...) here.
Add the constraint (x : tag/pred) into TY under substitution S.
Returns:
- normalized TY (via reform-T)
- "err" on conflict/violation.
Merge two type constraints for the *same* lvar.
Returns either a merged entry or "err" if incompatible.
Generic type constraint goal.
| Jump to: | =
A B C D E F L M N O P R S T U V W Z |
|---|
| Jump to: | =
A B C D E F L M N O P R S T U V W Z |
|---|
| Jump to: | M S |
|---|
| Index Entry | Section | ||
|---|---|---|---|
| | |||
| M | |||
mzero: | Private special variables | ||
| | |||
| S | |||
Special Variable, mzero: | Private special variables | ||
| | |||
| Jump to: | M S |
|---|
| Jump to: | F M P S W |
|---|
| Jump to: | F M P S W |
|---|