(defpackage #:website/lib/cache (:use #:cl) (:import-from #:function-cache #:defcached #:clear-cache) (:export #:memorize #:clear-cache)) (in-package #:website/lib/cache) (defmacro memorize (name) (let ((origin (gensym))) `(progn (setf (fdefinition ',origin) (fdefinition ',name)) (defcached ,name (&rest args) (apply #',origin args)))))