3.1.2.3 Accessor 
An accessor is a generic function with both reference and setter
methods.
|  | (define-accessor perimeter)
 | 
Reference methods for an accessor are defined in the same way as generic
function methods.
|  | (define-method (perimeter (s <square>))
  (* 4 (side-length s)))
 | 
Setter methods for an accessor are defined by specifying “(setter
<accessor-name>)” as the first parameter of the define-method
call.
|  | (define-method ((setter perimeter) (s <square>) (n <number>))
  (set! (side-length s) (/ n 4)))
 | 
Once an appropriate setter method has been defined in this way, it can
be invoked using the generalized set! syntax, as in:
|  | (set! (perimeter s1) 18.3)
 |