Accessor Modifier tracef place

tracef returns the setf-expander of place, modified so that relevant debug information is printed (in an unspecified format) on *trace-output* as well as performing the normal behavior.

Debug information is printed when a subform is evaluated and when the place is read from or written to.

(let ((a (list 2)))
  (incf (tracef (car (print a)))
        3))
-| (2)
-| TRACEF: Place: (CAR (PRINT A))
-| TRACEF: Action: Evaluate Subform
-| TRACEF: Subform: (PRINT A)
-| TRACEF: Result: (2)
-|
-| TRACEF: Place: (CAR (PRINT A))
-| TRACEF: Action: Read
-| TRACEF: Values: (2)
-|
-| TRACEF: Place: (CAR (PRINT A))
-| TRACEF: Action: Write
-| TRACEF: Values: (5)
⇒ 5