(define ob2 (class private (a 10) (b 20) public (c '()) (get-a (lambda (x) a)) (get-b (lambda (x) b)) (set-a! (lambda (x) (set! a x))) (set-b! (lambda (x) (set! b x))) (push-c! (lambda (x) (set! c (cons x c)))) (pop-c! (lambda (x) (if (not (eq? c '())) (set! c (cdr c)) (error "stack empty!")))))) Error: during expansion of (class ...) - no rule matches form: (class private (a 10) (b 20) public (c (quote ())) (get-a (lambda (x) a)) (get-b (lambda (x) b)) (set-a! (lambda (x) (set! a x))) (set-b! (lambda (x) (set! b x))) (push-c! (lambda (x) (set! c (cons x c)))) (pop-c! (lambda (x) (if (not (eq? c (quote ()))) (set! c (cdr c)) (error "stack empty!"))))) Call history: (##sys#cdr l190) (##sys#+ len191 -1) (##sys#= len191 3) (##sys#car l190) (##sys#pair? temp200) (##sys#cdr temp200) (##sys#pair? temp200) (##sys#eq? (##sys#cdr temp200) (quote ())) (##sys#cdr temp200) (loop195 (##sys#cdr l190) (##sys#+ len191 -1)) (##sys#cdr l190) (##sys#+ len191 -1) (##sys#= len191 3) (##sys#car l190) (##sys#pair? temp200) (##sys#syntax-rules-mismatch input189) <--