(index ("a-boolean" 0) ("an-integer-above" 0) ("an-integer-below" 0) ("an-integer" 0) ("an-integer-between" 0) ("a-member-of" 0) ("a-subset-of" 0) ("a-split-of" 0) ("a-permutation-of" 0) ("a-partition-of" 0) ("a-partition-of-size" 0) ("either" 664) ("fail" 786) ("for-effects" 860) ("all-values" 1003) ("local-one-value" 1158) ("possibly?" 1370) ("necessarily?" 1506) ("unwind-trail" 1644) ("unwedge-trail" 1644) ("local-set!" 1799) ("local-set-car!" 1799) ("local-set-cdr!" 1799) ("local-string-set!" 1799) ("local-vector-set!" 1799) ("upon-failure" 2177) ("*fail?*" 2353) ("top-level-fail" 2353) ("set-fail!" 2353))
(def (sig (procedure "(a-boolean)" (id a-boolean)) (procedure "(an-integer-above i)" (id an-integer-above)) (procedure "(an-integer-below i)" (id an-integer-below)) (procedure "(an-integer)" (id an-integer)) (procedure "(an-integer-between i j)" (id an-integer-between)) (procedure "(a-member-of list)" (id a-member-of)) (procedure "(a-subset-of list)" (id a-subset-of)) (procedure "(a-split-of list)" (id a-split-of)) (procedure "(a-permutation-of list)" (id a-permutation-of)) (procedure "(a-partition-of list)" (id a-partition-of)) (procedure "(a-partition-of-size size list)" (id a-partition-of-size))) (p "Generate a number of different kinds of elements."))
(def (sig (syntax "(either a b)" (id either))) (p "Select either a or b, everything is built on top of this primitive."))
(def (sig (procedure "(fail)" (id fail))) (p "Backtrack at this point."))
(def (sig (syntax "(for-effects . body)" (id for-effects))) (p "Execute a nondeterministic computation only for its effects not its result."))
(def (sig (syntax "(all-values . body)" (id all-values))) (p "Execute a nondeterministic computation and produce a list of all of its possible outputs."))
(def (sig (syntax "(one-value . body" (id #f)) (syntax "(local-one-value . body)" (id local-one-value))) (p "Execute a nondeterministic computation, return one output, and discard the rest of the computation."))
(def (sig (syntax "(possibly? . body)" (id possibly?))) (p "Execute a nondeterministic computation and return #f if it always fails."))
(def (sig (syntax "(necessarily? . body)" (id necessarily?))) (p "Execute a nondeterministic computation and return #f if it can fail."))
(def (sig (procedure "(unwind-trail)" (id unwind-trail)) (procedure "(unwedge-trail)" (id unwedge-trail))) (p "Pop the stack once or clear it entirely."))
(def (sig (syntax "(local-set! obj val)" (id local-set!)) (procedure "(local-set-car! x y)" (id local-set-car!)) (procedure "(local-set-cdr! x y)" (id local-set-cdr!)) (procedure "(local-string-set! s i x)" (id local-string-set!)) (procedure "(local-vector-set! v i x)" (id local-vector-set!))) (p "Perform operations with side-effects that will be undone when backtracking."))
(def (sig (syntax "(upon-failure . body)" (id upon-failure))) (p "When backtracking execute " (i "body") ", the above operations are implemented in terms of this primitive."))
(def (sig (procedure "*fail?*" (id *fail?*)) (procedure "(top-level-fail)" (id top-level-fail)) (procedure "(set-fail! f)" (id set-fail!))) (p "Internal"))
