#

## Issue SETF-APPLY-EXPANSION Writeup

    Status:       Proposal IGNORE-EXPANDER passed 12/91
    Issue:        SETF-APPLY-EXPANSION
    Reference:    CLtL-II, p.127
                  Draft 10.156, p.5-10
    Category:     CHANGE
    Edit History: Version 1, 12-Dec-91, Kim Barrett

    Problem Description:

     In Draft 10.156, the description of a call to APPLY as a place for SETF does
     not include some text from CLtL.  Specifically, the draft says that for a
     user-defined function,

       (SETF (APPLY #'name a1 a2 ...) v1)

     is equivalent to

       (APPLY #'(SETF name) v1 a1 a2 ...)

     except that the proper left-to-right evaluation order is maintained.  Instead
     of this, CLtL talks about APPLY as a place in terms of the expander for the
     function name as a place, saying that the last argument to the store form must
     be the same as the last argument of the access call.

    Proposal (SETF-APPLY-EXPANSION:IGNORE-EXPANDER):

     Affirm the draft text, eliminating the mechanism prescribed by CLtL for
     handling APPLY as a place for SETF.

    Editorial impact:

     None.  This affirms the wording in the draft.

    Rationale:

     Implementation of the mechanism described in CLtL places some unmentioned
     requirements on the SETF expander of functions that will be used with SETF of
     APPLY.  Some people consider the whole mechanism an ugly and unreliable hack.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.