The gadgets Reference Manual

This is the gadgets Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:28:22 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 gadgets

Ben McGunigle’s utility collection

Author

Ben McGunigle <>

License

Apache License, version 2.0

Dependencies
  • alexandria (system).
  • uiop (system).
  • cl-hash-util (system).
  • cl-utilities (system).
  • split-sequence (system).
Source

gadgets.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 gadgets/gadgets.asd

Source

gadgets.asd.

Parent Component

gadgets (system).

ASDF Systems

gadgets.


3.1.2 gadgets/package.lisp

Source

gadgets.asd.

Parent Component

gadgets (system).

Packages

gadgets.


3.1.3 gadgets/early.lisp

Dependency

package.lisp (file).

Source

gadgets.asd.

Parent Component

gadgets (system).

Public Interface

eval-always (macro).


3.1.4 gadgets/gadgets.lisp

Dependency

early.lisp (file).

Source

gadgets.asd.

Parent Component

gadgets (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 gadgets

Source

package.lisp.

Use List
  • cl-hash-util.
  • common-lisp.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *whitespace-characters*
Package

gadgets.

Source

gadgets.lisp.


5.1.2 Macros

Macro: bind-extracted-keywords ((source remainder &rest keys) &body body)

Removes the keywords named in keys, with their accompanying parameters, from the expression supplied in source. Source, minus the keys, is bound to remainder. The names of the keys are used for bindings for the accompanying values. (bind-extracted-keywords ((1 2 :x 3) data :x) <body>) Results in the body being executed with data bound to (1 2) and x bound to 3.

Package

gadgets.

Source

gadgets.lisp.

Macro: def-as-func (var func-form)

Set a variable in the function namespace.

Package

gadgets.

Source

gadgets.lisp.

Macro: do-alist ((key value source) &body body)
Package

gadgets.

Source

gadgets.lisp.

Macro: do-file-by-line ((line stream-or-path) &body body)
Package

gadgets.

Source

gadgets.lisp.

Macro: do-hash-table ((key value source) &body body)
Package

gadgets.

Source

gadgets.lisp.

Macro: do-list-with-rest ((head tail source) &body body)
Package

gadgets.

Source

gadgets.lisp.

Macro: do-window ((var/s source &key size step start-padding) &body body)

Like dolist, iterates over a list, but instead of binding a single list
item per iteration binds a segment of the list as a sliding window.
(do-window (x ’(1 2 3 4 5 6)) ...)
will execute the body 5 times with x bound respectively to:
(1 2) (2 3) (3 4) (4 5) (5 6)

The step keyword adjusts how far the window slides per iteration. A destructuring spec can be provided in place of the variable. Therefore do-window can be used to iterate over a plist like so:
(do-window ((k v) ’(:a 1 :b 2 :c 3) :step 2) ...)
Each key and value will be bound to k and v, respectively.

The size keyword allows adjustment of the window size.

Leading padding may be provided to do-window with the start-padding
keyword.

Package

gadgets.

Source

gadgets.lisp.

Macro: eval-always (&body body)
Package

gadgets.

Source

early.lisp.

Macro: hashval! ((var key hash) &body body)

Tool for updating a hash table value. Binds the value found under KEY in HASH to VAR for duration of the macro. The return value of the body is placed into the hash table slot.

Package

gadgets.

Source

gadgets.lisp.

Macro: or2 (&rest clauses)

A version of or that bases its decision on the second value of each clause. Forms that return no second value are considered T.

Package

gadgets.

Source

gadgets.lisp.

Macro: pif (test then &optional else)
Package

gadgets.

Source

gadgets.lisp.

Macro: preserve-other-values (expression func)

Take the values returned by expression, pass the first of them to func, returning its first value as the primary value and appending the remaining values from expression as unchanged.
(1+ (values 1 2 3)) => 2
(preserve-other-values (values 1 2 3)
#’1+) => 2 2 3

Package

gadgets.

Source

gadgets.lisp.

Macro: print-all-values (expr)

Like print, but prints - and passes on - all values received. Useful for debugging expressions that return multiple values.

Package

gadgets.

Source

gadgets.lisp.

Macro: print-and (&rest forms)
Package

gadgets.

Source

gadgets.lisp.

Macro: print-cond (&rest clauses)
Package

gadgets.

Source

gadgets.lisp.

Macro: print-lambda ((&rest args) &body body)
Package

gadgets.

Source

gadgets.lisp.

Macro: quotef (setf-spec)
Package

gadgets.

Source

gadgets.lisp.

Macro: ret (var val &body body)

A single variable let that returns the variable when the body completes.

(ret x 3 (incf x)) => 4

Package

gadgets.

Source

gadgets.lisp.

Macro: return-on-true (clause &optional from-target)

Executes return/return-from on the result of clause if it is true

Package

gadgets.

Source

gadgets.lisp.

Macro: three-way (test minus-clause zero-clause plus-clause)
Package

gadgets.

Source

gadgets.lisp.

Macro: tryit (&body body)

Execute the code in the body, returning T as the second value if the code executes without error, but returning (NIL NIL) if an exception is thrown. This provides a quick way to turn an error into a boolean value.

WARNING: This isn’t always a great idea for production code. Tryit will mask all raised errors, So if your code causes an error aside from the one you expect, you won’t be warned of the variance.

Package

gadgets.

Source

gadgets.lisp.

Macro: with-file-lock ((path &key interval) &body body)

Get an exclusive lock on a file. If lock cannot be obtained, keep trying after waiting a while

Package

gadgets.

Source

gadgets.lisp.

Macro: with-temporary-directory ((&key pathname) &body body)
Package

gadgets.

Source

gadgets.lisp.


5.1.3 Ordinary functions

Function: alist-p (item)

Determine if an item appears to be an assoc list

Package

gadgets.

Source

gadgets.lisp.

Function: as-in-range (start end num)

Complement of relative-of-range function. Treats num as if it were a fraction of the range specified by start and end. Returns the absolute number that results.

Package

gadgets.

Source

gadgets.lisp.

Function: assoc-all (item alist &key test)

Gets all items associated with a key, not just the first. Returns a list

(assoc-all :a ’((:a . 1) (:b . 2) (:c . 3) (:a . 4)))
=> (1 4)

Package

gadgets.

Source

gadgets.lisp.

Function: assoc-cdr (&rest keys-and-alists)

A shortcut for (cdr (assoc ...)) to give immediate access to an alist value.

Package

gadgets.

Source

gadgets.lisp.

Function: assoc-or (keys alist)

Finds the first key in keys that has a match in alist. Will use equal to match strings.

Package

gadgets.

Source

gadgets.lisp.

Function: boolify (item)

Attempts to guess when a string or number should be interpreted as T. Postive integers and strings like "true" and "yes" will be interpreted as true. Non-empty lists and sequences are true. Most other things are NIL

Package

gadgets.

Source

gadgets.lisp.

Function: call-with-temporary-directory (thunk &key want-pathname-p)
Package

gadgets.

Source

gadgets.lisp.

Function: capitalize-first (item)

Returns a string representation of item with the first letter capitalized and the remaining characters lower-case, where applicable. Item can be a string or a symbol

Package

gadgets.

Source

gadgets.lisp.

Function: chunk (n alist)
Package

gadgets.

Source

gadgets.lisp.

Function: dive ()
Package

gadgets.

Source

gadgets.lisp.

Function: dos-to-unix (string)
Package

gadgets.

Source

gadgets.lisp.

Function: dump (thing)
Package

gadgets.

Source

gadgets.lisp.

Function: edit-file-in-place (path function)

Edit an existing file in place. The file location is specified in path. An input and an output stream are passed as parameters to the supplied function. The input function reads from the specified file; the output stream writes to a temporary file. The supplied function is assumed to read from the input stream, make any desired changes, and write to the output stream. If it returns without error, the streams are closed and the temporary file is copied over the original.

Package

gadgets.

Source

gadgets.lisp.

Function: encode-time-delta (second minute hour day)
Package

gadgets.

Source

gadgets.lisp.

Function: extract-keywords (keywords alist &key in-list test)

Traverses a plist or lambda list, removing the specified keywords and the
value that immediately follows each. Found key/value pairs are returned as a
plist in the first value. The cleaned list is returned as the second value.

This, or the related macro bind-extracted-keywords, is particularly useful for adding features to macros. It will strip out added keywords from parameter lists, allowing the remainder to be passed to the original macro processing code.

Package

gadgets.

Source

gadgets.lisp.

Function: fetch-keyword (key alist &key in-list)

Find if a key is in a list, return the next item after it. if in-list is true, test the first element of any sublists for the key and if found return rest of list as parameter. A bit coarser in function than getf. Will tolerate improper plists.

Package

gadgets.

Source

gadgets.lisp.

Function: first-match (predicate list)

See also ’some’

Package

gadgets.

Source

gadgets.lisp.

Function: first-match-index (predicate list)

Returns the index of the first item in list that satisfies predicate.

Package

gadgets.

Source

gadgets.lisp.

Function: flatten-1 (alist)

Flattens conses found in the top level of a list. Nils in the top level will be removed.

(flatten-1 ’((1 2 3) nil (nil) ((4 5) (6 7))))
(1 2 3 NIL (4 5) (6 7))

Package

gadgets.

Source

gadgets.lisp.

Function: flatten-1-when (predicate items)

Returns a list with any conses in it flattened if predicate returns true when called with that item. Will not flatten NILs unless the predicate indicates it. The predicate will not be called on non-cons items.

Package

gadgets.

Source

gadgets.lisp.

Function: flatten-when (predicate items &key descend-all)

Recursively flattens any conses found in items if the predicate returns true on them. Will not flatten NILs unless the predicate indicates it. The predicate will not be called on non-cons items. Flatten-when will not normally descend into lists which it will not flatten, passing unchanged any list or cons item that fails the predicate. To cause it to descend into non-matching portions of the tree, set the :descend-all keyword.

Package

gadgets.

Source

gadgets.lisp.

Function: hash-table->source (ht)

Returns a source code representation of a hash table.

Package

gadgets.

Source

gadgets.lisp.

Function: homedir-relative-pathname (name)
Package

gadgets.

Source

gadgets.lisp.

Function: invert-hash-table (hash &key test mode)

Returns a new hash table with keys and values swapped:
(:a 1 :b 3 :c 5) => (1 :a 3 :b 5 :c)

The hash table test can be set with :test. The method of value collection can be controlled with :mode. Modes are those available for cl-hash-util:collecting-hash-table.

Package

gadgets.

Source

gadgets.lisp.

Function: key-in-hash? (key hashtable)
Package

gadgets.

Source

gadgets.lisp.

Function: last-car (list)
Package

gadgets.

Source

gadgets.lisp.

Function: last-match (predicate list)

Returns the first item from the end of the list that satisfies predicate.

Package

gadgets.

Source

gadgets.lisp.

Function: last-match-index (predicate list)

Returns the index of the last item in list that satifies predicate.

Package

gadgets.

Source

gadgets.lisp.

Function: length1 (itm)

Does item have a length of 1?

Package

gadgets.

Source

gadgets.lisp.

Function: list-set-place (tlist ind val padding)
Package

gadgets.

Source

gadgets.lisp.

Function: make-clock (ticks-per-second)
Package

gadgets.

Source

gadgets.lisp.

Function: map-assoc (func alist)
Package

gadgets.

Source

gadgets.lisp.

Function: map-by-2 (func list)
Package

gadgets.

Source

gadgets.lisp.

Function: map-file-by-line (function stream-or-path)
Package

gadgets.

Source

gadgets.lisp.

Function: map-improper (func list?)

Map over a list, proper or not. The return mapping will be a proper list.

Package

gadgets.

Source

gadgets.lisp.

Function: mapc-improper (func list?)

Mapc over a list, proper or not. Original list is returned. Like mapc, mapc-improper is used for side effects only.

Package

gadgets.

Source

gadgets.lisp.

Function: mapcan-by-2 (func list)
Package

gadgets.

Source

gadgets.lisp.

Function: maplist/step (func step list &rest more-lists)
Package

gadgets.

Source

gadgets.lisp.

Function: mkstr (&rest args)
Package

gadgets.

Source

gadgets.lisp.

Function: nelt (sequence index)

Negative elt. Count in from the end of the sequence. 0 fetches the last element.

Package

gadgets.

Source

gadgets.lisp.

Function: not-empty (itm)

A predicate to detect 0 length sequences.

Package

gadgets.

Source

gadgets.lisp.

Function: ordered-unique (list &key test)

Returns a unique list of the items in list in the order in which they first appear.

Package

gadgets.

Source

gadgets.lisp.

Function: part-on-index (list/seq index &key fail)

Divides a list into two parts at the specified index. The two parts are returned as values. If the index is too large for the sequence, part-on-index will silently return the sequence as the first value. Set the :fail keyword T to raise an error instead.

Package

gadgets.

Source

gadgets.lisp.

Function: part-tree (test tree)

Divides the s-expression supplied in tree into an inner and an outer portion. The outer portion is returned in the first value as a closure. The inner portion is returned as the second value. The inner portion consists of the first part of the tree that passes test. The tree is traversed breadth-first.

> (part-tree
(lambda (x) (eq ’deepest (car (ensure-list x))))
’(deep (deeper (deeperer (deepest (deepester you-are-here))))))
#<CLOSURE (LAMBDA (GADGETS::X) :IN GADGETS:PART-TREE) {C19C81D}>
(DEEPEST (DEEPESTER YOU-ARE-HERE))

> (funcall * :xyz)
(DEEP (DEEPER (DEEPERER :XYZ)))

The returned closure should be called with a single argument. It will return the outer portion with the supplied argument in place of the inner portion.

Package

gadgets.

Source

gadgets.lisp.

Function: plist-p (item)

Determine if an item qualifies as a plist

Package

gadgets.

Source

gadgets.lisp.

Function: quoted-list-p (item)

Utility to test if a macro parameter is a quoted list. Returns the list if it is.

Package

gadgets.

Source

gadgets.lisp.

Function: quoted-p (item)

Macro utility to test if an item has been quoted by the macro user.

Package

gadgets.

Source

gadgets.lisp.

Function: quoted-symbol-p (item)

Macro utility to test if an item has been passed into a macro as a quoted symbol. If so, returns the symbol without the quote.

Package

gadgets.

Source

gadgets.lisp.

Function: range (start &optional stop step)

Creates a list containing a sequential range of integers. By default the range runs from 0 to one below the supplied stop value:
(range 3) -> (0 1 2)
If a second parameter is supplied, the first is treated as a starting value, and the second as a stop:
(range 7 10) -> (7 8 9)
The third parameter specifies a step size:
(range 0 10 2) -> (0 2 4 6 8)
A negative step parameter causes the range to travel down from the start to the stop:
(range 10 5) -> (10 9 8 7 6)

Package

gadgets.

Source

gadgets.lisp.

Function: rekey (store mapping &key ignore-missing test)
Package

gadgets.

Source

gadgets.lisp.

Function: relative-to-range (start end num)

Returns a value indicating where num is positioned relative to start and end. If num lies between start and end, the return value will be between 0.0 and 1.0.

Package

gadgets.

Source

gadgets.lisp.

Function: remove-if-member (seq things &key key test)
Package

gadgets.

Source

gadgets.lisp.

Function: sequence->list (seq)
Package

gadgets.

Source

gadgets.lisp.

Function: sequence-ends-with (seq testseq)

Does the sequence end with the test sequence?

Package

gadgets.

Source

gadgets.lisp.

Function: sequence-starts-with (seq testseq)

Does the sequence begin with the test sequence?

Package

gadgets.

Source

gadgets.lisp.

Function: sequences-end-same (seq1 seq2)

Given two sequences, does the tail of the longer match the shorter over its length? If the sequences are the same length then they must be equal to satisfy the predicate.

Package

gadgets.

Source

gadgets.lisp.

Function: sequences-start-same (seq seq2)

Given two sequences, are they the same until one runs out? This function does not care which sequence contains the other. Use sequence-starts-with if you need something more specific.

Package

gadgets.

Source

gadgets.lisp.

Function: split-sequence-on-subseq (subseq/s sequence)
Package

gadgets.

Source

gadgets.lisp.

Function: splitfilter (predicate alist)
Package

gadgets.

Source

gadgets.lisp.

Function: string-equal* (a b)

Broad version of string-equal. Will take input that is not a string or symbol.

Package

gadgets.

Source

gadgets.lisp.

Function: string-equal-case (a b)

A case sensitive version of string-equal.

Package

gadgets.

Source

gadgets.lisp.

Function: string-equal-multiple (a b)

For things that send multiple items with "[]" appended to the var name, a convention started by the PHP people. Mostly useful for web programming.

Package

gadgets.

Source

gadgets.lisp.

Function: string-join (filler strings)
Package

gadgets.

Source

gadgets.lisp.

Function: string-strip (string &optional bag)

Strip whitespace characters from the beginning and end of a string. An alternate set of characters to strip can be supplied as a list in the optional second parameter.

Package

gadgets.

Source

gadgets.lisp.

Function: string-unless-number (x)

Return the input as a string unless it can be recognized as an integer.

Package

gadgets.

Source

gadgets.lisp.

Function: strip-leading (string &optional bag)
Package

gadgets.

Source

gadgets.lisp.

Function: strip-trailing (string &optional bag)
Package

gadgets.

Source

gadgets.lisp.

Function: symb (&rest args)
Package

gadgets.

Source

gadgets.lisp.

Function: symbol-unless-number (x)

Convert the input string into a symbol unless it can be converted into a number.

Package

gadgets.

Source

gadgets.lisp.

Function: symbolize (entity &key package)
Package

gadgets.

Source

gadgets.lisp.

Function: to-lowercase (item)
Package

gadgets.

Source

gadgets.lisp.

Function: to-uppercase (item)
Package

gadgets.

Source

gadgets.lisp.

Function: truncate-string (str &key length indicator)
Package

gadgets.

Source

gadgets.lisp.

Function: try-awhile (predicate &key sleep wait on-success on-fail)

Will continue to call predicate until either it returns success or a given amount of time elapses. Duration can be set with the :wait keyword. It defaults to 1 second. Try-awhile will sleep between predicate calls unless the :sleep keyword is set to nil. Default sleep is 0.001 of a second.

Try-awhile will return the predicate value on success or nil on failure. If a function is supplied to the :on-success argument, it will be executed if the predicate succeeds and its result will be returned instead of the predicate result. The :on-fail keyword may be used to supply a function that will be run if the time elapses without a predicate success. It’s result will be returned instead of the default nil.

Package

gadgets.

Source

gadgets.lisp.

Function: use-package-with-shadowing (package &optional target-package)
Package

gadgets.

Source

gadgets.lisp.

Function: user-cache-directory ()

OS independent functions to supply the recommended locations for user writable cache, config and data directories on the current platform. It’s best not to place application files in the returned directory. ’common-lisp/[appname]’ or perhaps ’[appname]/’ should first be appended to the diectory.

Package

gadgets.

Source

gadgets.lisp.

Function: user-config-directory ()

OS independent functions to supply the recommended locations for user writable cache, config and data directories on the current platform. It’s best not to place application files in the returned directory. ’common-lisp/[appname]’ or perhaps ’[appname]/’ should first be appended to the diectory.

Package

gadgets.

Source

gadgets.lisp.

Function: user-data-directory ()

OS independent functions to supply the recommended locations for user writable cache, config and data directories on the current platform. It’s best not to place application files in the returned directory. ’common-lisp/[appname]’ or perhaps ’[appname]/’ should first be appended to the diectory.

Package

gadgets.

Source

gadgets.lisp.

Function: xsubseq (sequence start end &key type)

Returns sequence with start->end chopped out of it

Package

gadgets.

Source

gadgets.lisp.


5.1.4 Generic functions

Generic Function: part-after-true (test list/seq &key fail)

Like part-on-true, but includes the first matching item in the first list.

Package

gadgets.

Source

gadgets.lisp.

Methods
Method: part-after-true ((test function) (list/seq list) &key fail)
Method: part-after-true ((test function) (list/seq sequence) &key fail)
Generic Function: part-on-true (test list/seq &key fail)

Divides a list or sequence into two parts, with the second part starting with the first item to cause test to return true. The two parts of the sequence are returned as values. If a dividing point is not found, part-on-true will return the whole sequence as the first value. If you wish it to raise an error instead, set the :fail parameter to true.

Package

gadgets.

Source

gadgets.lisp.

Methods
Method: part-on-true ((test function) (list/seq list) &key fail)
Method: part-on-true ((test function) (list/seq sequence) &key fail)

5.2 Internals


5.2.1 Special variables

Special Variable: *dump-stor*
Package

gadgets.

Source

gadgets.lisp.


5.2.2 Ordinary functions

Function: %set-up-hash-table (data test)
Package

gadgets.

Source

gadgets.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   W   X  
Index Entry  Section

%
%set-up-hash-table: Private ordinary functions

A
alist-p: Public ordinary functions
as-in-range: Public ordinary functions
assoc-all: Public ordinary functions
assoc-cdr: Public ordinary functions
assoc-or: Public ordinary functions

B
bind-extracted-keywords: Public macros
boolify: Public ordinary functions

C
call-with-temporary-directory: Public ordinary functions
capitalize-first: Public ordinary functions
chunk: Public ordinary functions

D
def-as-func: Public macros
dive: Public ordinary functions
do-alist: Public macros
do-file-by-line: Public macros
do-hash-table: Public macros
do-list-with-rest: Public macros
do-window: Public macros
dos-to-unix: Public ordinary functions
dump: Public ordinary functions

E
edit-file-in-place: Public ordinary functions
encode-time-delta: Public ordinary functions
eval-always: Public macros
extract-keywords: Public ordinary functions

F
fetch-keyword: Public ordinary functions
first-match: Public ordinary functions
first-match-index: Public ordinary functions
flatten-1: Public ordinary functions
flatten-1-when: Public ordinary functions
flatten-when: Public ordinary functions
Function, %set-up-hash-table: Private ordinary functions
Function, alist-p: Public ordinary functions
Function, as-in-range: Public ordinary functions
Function, assoc-all: Public ordinary functions
Function, assoc-cdr: Public ordinary functions
Function, assoc-or: Public ordinary functions
Function, boolify: Public ordinary functions
Function, call-with-temporary-directory: Public ordinary functions
Function, capitalize-first: Public ordinary functions
Function, chunk: Public ordinary functions
Function, dive: Public ordinary functions
Function, dos-to-unix: Public ordinary functions
Function, dump: Public ordinary functions
Function, edit-file-in-place: Public ordinary functions
Function, encode-time-delta: Public ordinary functions
Function, extract-keywords: Public ordinary functions
Function, fetch-keyword: Public ordinary functions
Function, first-match: Public ordinary functions
Function, first-match-index: Public ordinary functions
Function, flatten-1: Public ordinary functions
Function, flatten-1-when: Public ordinary functions
Function, flatten-when: Public ordinary functions
Function, hash-table->source: Public ordinary functions
Function, homedir-relative-pathname: Public ordinary functions
Function, invert-hash-table: Public ordinary functions
Function, key-in-hash?: Public ordinary functions
Function, last-car: Public ordinary functions
Function, last-match: Public ordinary functions
Function, last-match-index: Public ordinary functions
Function, length1: Public ordinary functions
Function, list-set-place: Public ordinary functions
Function, make-clock: Public ordinary functions
Function, map-assoc: Public ordinary functions
Function, map-by-2: Public ordinary functions
Function, map-file-by-line: Public ordinary functions
Function, map-improper: Public ordinary functions
Function, mapc-improper: Public ordinary functions
Function, mapcan-by-2: Public ordinary functions
Function, maplist/step: Public ordinary functions
Function, mkstr: Public ordinary functions
Function, nelt: Public ordinary functions
Function, not-empty: Public ordinary functions
Function, ordered-unique: Public ordinary functions
Function, part-on-index: Public ordinary functions
Function, part-tree: Public ordinary functions
Function, plist-p: Public ordinary functions
Function, quoted-list-p: Public ordinary functions
Function, quoted-p: Public ordinary functions
Function, quoted-symbol-p: Public ordinary functions
Function, range: Public ordinary functions
Function, rekey: Public ordinary functions
Function, relative-to-range: Public ordinary functions
Function, remove-if-member: Public ordinary functions
Function, sequence->list: Public ordinary functions
Function, sequence-ends-with: Public ordinary functions
Function, sequence-starts-with: Public ordinary functions
Function, sequences-end-same: Public ordinary functions
Function, sequences-start-same: Public ordinary functions
Function, split-sequence-on-subseq: Public ordinary functions
Function, splitfilter: Public ordinary functions
Function, string-equal*: Public ordinary functions
Function, string-equal-case: Public ordinary functions
Function, string-equal-multiple: Public ordinary functions
Function, string-join: Public ordinary functions
Function, string-strip: Public ordinary functions
Function, string-unless-number: Public ordinary functions
Function, strip-leading: Public ordinary functions
Function, strip-trailing: Public ordinary functions
Function, symb: Public ordinary functions
Function, symbol-unless-number: Public ordinary functions
Function, symbolize: Public ordinary functions
Function, to-lowercase: Public ordinary functions
Function, to-uppercase: Public ordinary functions
Function, truncate-string: Public ordinary functions
Function, try-awhile: Public ordinary functions
Function, use-package-with-shadowing: Public ordinary functions
Function, user-cache-directory: Public ordinary functions
Function, user-config-directory: Public ordinary functions
Function, user-data-directory: Public ordinary functions
Function, xsubseq: Public ordinary functions

G
Generic Function, part-after-true: Public generic functions
Generic Function, part-on-true: Public generic functions

H
hash-table->source: Public ordinary functions
hashval!: Public macros
homedir-relative-pathname: Public ordinary functions

I
invert-hash-table: Public ordinary functions

K
key-in-hash?: Public ordinary functions

L
last-car: Public ordinary functions
last-match: Public ordinary functions
last-match-index: Public ordinary functions
length1: Public ordinary functions
list-set-place: Public ordinary functions

M
Macro, bind-extracted-keywords: Public macros
Macro, def-as-func: Public macros
Macro, do-alist: Public macros
Macro, do-file-by-line: Public macros
Macro, do-hash-table: Public macros
Macro, do-list-with-rest: Public macros
Macro, do-window: Public macros
Macro, eval-always: Public macros
Macro, hashval!: Public macros
Macro, or2: Public macros
Macro, pif: Public macros
Macro, preserve-other-values: Public macros
Macro, print-all-values: Public macros
Macro, print-and: Public macros
Macro, print-cond: Public macros
Macro, print-lambda: Public macros
Macro, quotef: Public macros
Macro, ret: Public macros
Macro, return-on-true: Public macros
Macro, three-way: Public macros
Macro, tryit: Public macros
Macro, with-file-lock: Public macros
Macro, with-temporary-directory: Public macros
make-clock: Public ordinary functions
map-assoc: Public ordinary functions
map-by-2: Public ordinary functions
map-file-by-line: Public ordinary functions
map-improper: Public ordinary functions
mapc-improper: Public ordinary functions
mapcan-by-2: Public ordinary functions
maplist/step: Public ordinary functions
Method, part-after-true: Public generic functions
Method, part-after-true: Public generic functions
Method, part-on-true: Public generic functions
Method, part-on-true: Public generic functions
mkstr: Public ordinary functions

N
nelt: Public ordinary functions
not-empty: Public ordinary functions

O
or2: Public macros
ordered-unique: Public ordinary functions

P
part-after-true: Public generic functions
part-after-true: Public generic functions
part-after-true: Public generic functions
part-on-index: Public ordinary functions
part-on-true: Public generic functions
part-on-true: Public generic functions
part-on-true: Public generic functions
part-tree: Public ordinary functions
pif: Public macros
plist-p: Public ordinary functions
preserve-other-values: Public macros
print-all-values: Public macros
print-and: Public macros
print-cond: Public macros
print-lambda: Public macros

Q
quoted-list-p: Public ordinary functions
quoted-p: Public ordinary functions
quoted-symbol-p: Public ordinary functions
quotef: Public macros

R
range: Public ordinary functions
rekey: Public ordinary functions
relative-to-range: Public ordinary functions
remove-if-member: Public ordinary functions
ret: Public macros
return-on-true: Public macros

S
sequence->list: Public ordinary functions
sequence-ends-with: Public ordinary functions
sequence-starts-with: Public ordinary functions
sequences-end-same: Public ordinary functions
sequences-start-same: Public ordinary functions
split-sequence-on-subseq: Public ordinary functions
splitfilter: Public ordinary functions
string-equal*: Public ordinary functions
string-equal-case: Public ordinary functions
string-equal-multiple: Public ordinary functions
string-join: Public ordinary functions
string-strip: Public ordinary functions
string-unless-number: Public ordinary functions
strip-leading: Public ordinary functions
strip-trailing: Public ordinary functions
symb: Public ordinary functions
symbol-unless-number: Public ordinary functions
symbolize: Public ordinary functions

T
three-way: Public macros
to-lowercase: Public ordinary functions
to-uppercase: Public ordinary functions
truncate-string: Public ordinary functions
try-awhile: Public ordinary functions
tryit: Public macros

U
use-package-with-shadowing: Public ordinary functions
user-cache-directory: Public ordinary functions
user-config-directory: Public ordinary functions
user-data-directory: Public ordinary functions

W
with-file-lock: Public macros
with-temporary-directory: Public macros

X
xsubseq: Public ordinary functions