I've been messing around with get-setf-expansion
and run into problems when using it in sbcl 0.8
My understanding was that if no
environment was given then the null lexical
environment was to be used, or is there yet
another outside case that I've missed.
* (defstruct foo (x))
* (get-setf-expansion '(foo-x foo))
debugger invoked on condition of type TYPE-ERROR in thread 4631:
The value NIL is not of type SB-KERNEL:LEXENV.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel).
1: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.
(SB-IMPL::EXPAND-OR-GET-SETF-INVERSE 2 (FOO-X FOO) NIL)[:EXTERNAL]
The pen is mightier than the sword.
Only if the sword is very short and the pen is very sharp.