change-slot

: change-slot ( object quot( old-slot-value -- new-slot-value ) -- object )
    over                ! object quot object
    [                   ! object quot
        [               ! object
            slot>>      ! old-slot-value
        ] dip           ! old-slot-value quot
        call            ! new-slot-value
    ] dip               ! new-slot-value object
    swap                ! object new-slot-value
    >>slot              ! object
    ; inline