(define-syntax symbolic-accessor (syntax-rules () ((_ (?var0 ?val0) ...) (let* ((?var0 ?val0) ...) (call/cc (lambda (yield) (yield (lambda (p) (cond ((eq? p '?var0) ?val0) ... (else (error "input not found")))))))))))