+ (defvar *initializers* nil)
+ (defun register-initializer (fn)
+ (setf *initializers* (nconc *initializers* (list fn)))))
+
+(defun run-initializers ()
+ (iter (for fn in *initializers*)
+ (funcall fn)))
+
+(defmacro at-init (&body body)
+ `(progn (register-initializer (lambda () ,@body))
+ ,@body))
+
+(eval-when (:compile-toplevel :load-toplevel :execute)