anchor.diff:    (null lcons))
   
   (defmethod head ((lcons lcons))
  -  (when (not (slot-boundp lcons 'val))
  -    (setf (slot-value lcons 'val) (funcall (slot-value lcons 'thunk))))
  +  (when (functionp (slot-value lcons 'val))
  +    (setf (slot-value lcons 'val) (funcall (slot-value lcons 'val))))
     (car (slot-value lcons 'val)))
   
   (defmethod head ((lcons list))
     (car lcons))
   
   (defmethod tail ((lcons lcons))
  -  (when (not (slot-boundp lcons 'val))
  -    (setf (slot-value lcons 'val) (funcall (slot-value lcons 'thunk))))
  +  (when (functionp (slot-value lcons 'val))
  +    (setf (slot-value lcons 'val) (funcall (slot-value lcons 'val))))
     (cdr (slot-value lcons 'val)))
   
   (defmethod tail ((lcons list))
  
positive.code: (in-package :slow-jam)
  
  (defclass lcons ()
    ((thunk :initarg :thunk)
     (val)))
  
  (defmacro lcons (head tail)
    `(make-instance 'lcons
                    :thunk (lambda () (cons ,head ,tail))))
  
  (defgeneric empty? (lcons))
  (defgeneric head (lcons))
  
negative.code:            (apply #'lmapcar f (mapcar #'tail lists)))))
  
  (defun last-val (lcons)
    (if (tail lcons)
      (last-val (tail lcons))
      (head lcons)))
  
  (defun take (n lcons)
    (if (and (> n 0) (not (empty? lcons)))
  