It is a collection of lots of small bits and pieces which have proven themselves usefull in various applications. They are all tested, some even have a test suite and a few are even documentated.
(defpackage :it.bese.arnesi (:documentation "The arnesi utility suite.") (:nicknames :arnesi) (:use :common-lisp) (:export #:clean-op #:make-reducer #:make-pusher #:make-collector #:with-reducer #:with-collector #:with-collectors #:walk-form #:make-walk-env #:*walk-handlers* #:defwalker-handler #:implicit-progn-mixin #:implicit-progn-with-declare-mixin #:binding-form-mixin #:declaration-form #:constant-form #:variable-reference #:local-variable-reference #:local-lexical-variable-reference #:free-variable-reference #:application-form #:local-application-form #:lexical-application-form #:free-application-form #:lambda-application-form #:function-form #:lambda-function-form #:function-object-form #:local-function-object-form #:free-function-object-form #:lexical-function-object-form #:function-argument-form #:required-function-argument-form #:specialized-function-argument-form #:optional-function-argument-form #:keyword-function-argument-form #:allow-other-keys-function-argument-form #:rest-function-argument-form #:block-form #:return-from-form #:catch-form #:throw-form #:eval-when-form #:if-form #:function-binding-form #:flet-form #:labels-form #:variable-binding-form #:let-form #:let*-form #:locally-form #:macrolet-form #:multiple-value-call-form #:multiple-value-prog1-form #:progn-form #:progv-form #:setq-form #:symbol-macrolet-form #:tagbody-form #:go-tag-form #:go-form #:the-form #:extract-argument-names #:walk-lambda-list #:to-cps #:with-call/cc #:kall #:call/cc #:let/cc #:*call/cc-returns* #:invalid-return-from #:unreachable-code #:defun/cc #:defgeneric/cc #:defmethod/cc #:fmakun-cc #:*debug-evaluate/cc* #:*trace-cc* #:ppm #:ppm1 #:apropos-list* #:apropos* #:with-input-from-file #:with-output-to-file #:read-string-from-file #:write-string-to-file #:copy-file #:string-to-octets #:octets-to-string #:if-bind #:aif #:when-bind #:awhen #:cond-bind #:acond #:aand #:and-bind #:it #:whichever #:xor #:switch #:eswitch #:cswitch #:build-hash-table #:deflookup-table #:hash-to-alist #:hash-table-keys #:hash-table-values #:write-as-uri #:escape-as-uri #:unescape-as-uri #:nunescape-as-uri #:write-as-html #:escape-as-html #:unescape-as-html #:compose #:conjoin #:curry #:rcurry #:noop #:y #:lambda-rec #:dolist* #:dotree #:ensure-list #:ensure-cons #:partition #:partitionx #:proper-list-p #:push* #:get-logger #:log-category #:stream-log-appender #:make-stream-log-appender #:file-log-appender #:make-file-log-appender #:log.dribble #:log.debug #:log.info #:log.warn #:log.error #:log.fatal #:deflogger #:log.level #:+dribble+ #:+debug+ #:+info+ #:+warn+ #:+error+ #:+fatal+ #:handle #:append-message #:ancestors #:appenders #:childer #:with-unique-names #:rebinding #:define-constant #:make-matcher #:match #:match-case #:list-match-case #:parse-ieee-double #:parse-float #:mulf #:divf #:minf #:maxf #:map-range #:do-range #:10^ #:tail #:but-tail #:head #:but-head #:starts-with #:ends-with #:read-sequence* #:deletef #:+lower-case-ascii-alphabet+ #:+upper-case-ascii-alphabet+ #:+ascii-alphabet+ #:+alphanumeric-ascii-alphabet+ #:+base64-alphabet+ #:random-string #:strcat #:strcat* #:princ-csv #:parse-csv-string #:join-strings #:fold-strings #:trim-string #:~% #:~T #:+CR-LF+ #:~D #:~A #:~S #:~W #:def-special-environment #:intern-concat #:vector-push-extend* #:string-from-array ;; decimal arith #:*precision* #:with-precision #:decimal-from-float #:float-from-decimal #:round-down #:round-half-up #:round-half-even #:round-ceiling #:round-floor #:round-half-down #:round-up #:enable-sharp-l #:defclass-struct #:with* #:quit #:wrapping-standard #:levenshtein-distance ))