anchor.diff:    ((function
       :initarg :function :reader memoized-function
       :documentation "The original, unmemoized, function")
  +   (wrapped-function
  +    :accessor wrapped-function
  +    :documentation "The memoizing version of the function.")
      (table
       :initarg :table :reader memoized-table :initform (make-hash-table :test 'equal)
       :documentation "a hash-table containing the memoized computations so far")
  
positive.code: Keyword arguments TABLE and NORMALIZATION are as per MEMOIZE."
    (declare (ignore table normalization))
    (let ((info (apply 'make-instance 'memoization-info :function function keys)))
      #'(lambda (&rest arguments) (compute-memoized-function info arguments))))
  
  ;;; This is your generic memoized function.
  ;;; If you want to make sure that a given function is only ever called once
  
negative.code:   (let ((info (get symbol 'memoization-info)))
      (when info
        (assert (typep info 'memoization-info))
        (assert (eq (wrapped-function info) (symbol-function symbol)))
        (setf (symbol-function symbol) (memoized-function info))
        (remprop symbol 'memoization-info)
        info)))
  