(define (new-instance class . parameters) (apply class parameters)) (define (send message object . args) (let ((method (method-lookup object message))) (cond ((procedure? method) (apply method args)) (else (error "Error in method lookup " method))))) (define (method-lookup object selector) (cond ((procedure? object) (object selector)) (else (error "Inappropriate object in method-lookup: " object))))