(index ("basic-macro-helpers" 0) ("pseudo-list" 110) ("pseudo-list?" 219) ("pseudo-list-of" 352) ("pseudo-null?" 523) ("pseudo-length" 604) ("pseudo-ref" 728) ("pseudo-tail" 873) ("pseudo-tail" 873) ("pseudo-head" 1152) ("pseudo-head" 1152) ("pseudo-sentinel" 1452) ("pseudo-flatte" 1609) ("adjoin" 1729) ("remove-duplicates" 1843) ("filter" 1953) ("sym-prepends?" 2092) ("sym-tail" 2214) ("basic-macros" 2337) ("define-syntax-rule" 2433) ("define-syntax-rule" 2433) ("define-er-macro" 2694) ("define-ir-macro" 2956) ("bind" 3219) ("bind" 3219) ("bind-case" 3882) ("bind-case" 3882) ("once-only" 4292) ("with-mapped-symbols" 4539) ("with-gensyms" 4897))
(def (sig (procedure "(basic-macro-helpers sym ..)" (id basic-macro-helpers))) (p "documentation procedure"))
(def (sig (procedure "(pseudo-list sentinel . args)" (id pseudo-list))) (p "constructs a new pseudo-list."))
(def (sig (procedure "(pseudo-list? xpr)" (id pseudo-list?))) (p "predicate. Note, that except lists everything is a pseudo-list."))
(def (sig (procedure "(pseudo-list-of . preds)" (id pseudo-list-of))) (p "returns a unary predicate, which tests, if its argument is passed by each predicate in preds."))
(def (sig (procedure "(pseudo-null? xpr)" (id pseudo-null?))) (p "not a pair."))
(def (sig (procedure "(pseudo-length pl)" (id pseudo-length))) (p "length of a pseudo-list. The sentinel is not counted."))
(def (sig (procedure "(pseudo-ref pl k)" (id pseudo-ref))) (p "returns the kth item of a pseudo-list. k must be less then pl's pseudo-length."))
(def (sig (procedure "(pseudo-tail pl k)" (id pseudo-tail)) (procedure "(pseudo-tail pl)" (id pseudo-tail))) (p "returns the kth tail of a pseudo-list. k must be less then or equal to pl's pseudo-length. In the latter case, or when no k is provided, the sentinel is returned."))
(def (sig (procedure "(pseudo-head pl k)" (id pseudo-head)) (procedure "(pseudo-head pl)" (id pseudo-head))) (p "returns the kth tail of a pseudo-list. k must be less then or equal to pl's pseudo-length. In the latter case, or when no k is provided, a list with the sentinel stripped is returned."))
(def (sig (procedure "(pseudo-sentinel pl)" (id pseudo-sentinel))) (p "returns the sentinel of a pseudo-list. If pl is not a pair, pl itself is returned."))
(def (sig (procedure "(pseudo-flatte tree)" (id pseudo-flatte))) (p "transforms a nested pseudo-list to a flat list."))
(def (sig (procedure "(adjoin obj lst)" (id adjoin))) (p "adds obj to lst, provided obj is not an item of lst."))
(def (sig (procedure "(remove-duplicates lst)" (id remove-duplicates))) (p "removes all duplicates of lst."))
(def (sig (procedure "(filter ok? lst)" (id filter))) (p "returns the sublist of lst consisting of all items passing the ok? predicate."))
(def (sig (procedure "(sym-prepends? pre sym)" (id sym-prepends?))) (p "does the symbol sym start with the symbol pre?"))
(def (sig (procedure "(sym-tail pre sym)" (id sym-tail))) (p "returns the subsymbol of sym by stripping the prefix pre."))
(def (sig (procedure "(basic-macros sym ..)" (id basic-macros))) (p "documentation procedure"))
(def (sig (syntax "(define-syntax-rule (name . args) xpr . xprs)" (id define-syntax-rule)) (syntax "(define-syntax-rule (name . args) (keywords . keys) xpr .  xprs)" (id define-syntax-rule))) (p "simplyfied version of syntax-rules if there is only one rule."))
(def (sig (syntax "(define-er-macro (name form rename-symbol compare?) xpr . xprs)" (id define-er-macro))) (p "defines an explicit-renaming-macro name with macro-code form renaming each symbol in the body xpr . xprs starting with rename-symbol automatically."))
(def (sig (syntax "(define-ir-macro (name form inject-symbol compare?) xpr . xprs)" (id define-ir-macro))) (p "defines an implicit-renaming-macro name with macro-code form injecting each symbol in the body xpr . xprs starting with inject-symbol automatically."))
(def (sig (syntax "(bind pat seq (where (x x? ...) ...) xpr . xprs)" (id bind)) (syntax "(bind pat seq xpr . xprs)" (id bind))) (p "binds pattern varibles of a nested pseudo-list pat to corresponding expressions of the nested pseudo-list seq and executes the body xpr . xprs in this context, provided all fenders (x? x) ... are passed, if there are any. Note, that the underscore symbol serves as wildcard, which binds nothing, and literals in pat and seq must match.") (p "Must be used for-syntax if used to destucture macro-code in explicit- or implicit-renaming macros.") (p "This is a restricted version of the equally named macro in the bindings library."))
(def (sig (syntax "(bind-case seq (pat fenders ... xpr . xprs) ...)" (id bind-case)) (syntax "(bind-case seq (pat xpr . xprs) ...)" (id bind-case))) (p "executes (bind pat seq xpr . xprs) or (bind pat seq fenders ... xpr .  xprs) respectively of the first pattern pat matching seq and passing fenders.") (p "Must be used for-syntax if used to destucture macro-code in explicit- or implicit-renaming macros."))
(def (sig (syntax "(once-only (x . xs) xpr . xprs)" (id once-only))) (p "to be used in a macro-body to avoid side-effects. The arguments x . xs are only evaluated once. once-only must be used for-syntax in explicit or implicit renaming macros."))
(def (sig (syntax "(with-mapped-symbols mapper prefix- (prefix-x ...) xpr . xprs)" (id with-mapped-symbols))) (p "binds a series of prefixed names, prefix-x ... to the images of the original names, x ..., under mapper and evaluates xpr . xprs in this context. To be used for-synax in ir- or er-macro-transformers, where mapper is either inject or rename."))
(def (sig (syntax "(with-gensyms (x ...) xpr ....)" (id with-gensyms))) (p "to be used in a macro body and hence to be imported for-syntax. Generates a list of gensyms x ... which can be used in xpr ....."))
