Pairs With Conventions

left top right

(define (make-pair L R)
  (lambda (msg)
    (case msg
      ((LEFT) (lambda () L)
      ((RIGHT) (lambda () R)
      ((NEW-LEFT!) (lambda (new) (set! L new)))
      ((NEW-RIGHT!) (lambda (new) (set! R new)))
      (else (no-method)))))))

Jim Miller W3C