Accumulator in CLOS
(defclass accumulator ()
  ((value :accessor accumulator-value :initform 0)))
(defmethod inc ((a accumulator) (i number))
  (setf (accumulator-value a)
        (+ (accumulator-value a) i))
  nil)
(defmethod dec ((a accumulator) (i number))
  (setf (accumulator-value a)
        (- (accumulator-value a) i))
  nil)
(defmethod reset ((a accumulator))
  (setf (accumulator-value a) 0)
  nil)