putがウザくなってきたのでマクロを書く。

(require 'cl)

(defmacro set-put (progname edit-list)
  "edit-list = ((<value> . (sym ...)) ...)"
  `(progn
     ,@(loop for (depth sym-list) in edit-list nconc
	     (loop for sym in sym-list collect `(put (quote ,sym) ,progname ,depth)))))


(set-put 'scheme-indent-function
	 ((1
	   (guard with-locking-mutex with-signal-handlers with-time-counter with-string-io with-port-locking with-output-to-string with-output-to-process with-output-to-port with-output-conversion with-module with-iterator with-input-from-string with-input-from-process with-input-from-port with-input-conversion with-error-to-port with-builder while when until unless syntax-rules rxmatch-case parse-options parameterize match make letrec-syntax let/cc let-values let-syntax let*-values dotimes dolist call-with-values call-with-temporary-file call-with-output-file call-with-output-conversion call-with-iterator call-with-input-string call-with-input-process call-with-input-file call-with-input-conversion call-with-client-socket and-let*))
	  (2 
	   (rxmatch-let rxmatch-if receive multiple-value-bind match-let1 let1 let-optionals* let-match let-keywords let-keywords* let-args if-match))
	  (0 
	   (with-error-handler rxmatch-cond call-with-output-string begin0))))