 doctype, as required for Jade."
   :type '(choice (string :tag "Specified string")
                  (const :tag "None" :value nil))
-  :group 'scheme)
-
-(defcustom scheme-mode-hook nil
-  "Normal hook run when entering `scheme-mode'.
+  :group 'yin)
+
+(defcustom yin-mode-hook nil
+  "Normal hook run when entering `yin-mode'.
 See `run-hooks'."
   :type 'hook
-  :group 'scheme)
+  :group 'yin)
 
 (defcustom dsssl-mode-hook nil
   "Normal hook run when entering `dsssl-mode'.
 See `run-hooks'."
   :type 'hook
-  :group 'scheme)
-
-;; This is shared by cmuscheme and xscheme.
-(defcustom scheme-program-name "scheme"
-  "Program invoked by the `run-scheme' command."
+  :group 'yin)
+
+;; This is shared by cmuyin and xyin.
+(defcustom yin-program-name "yin"
+  "Program invoked by the `run-yin' command."
   :type 'string
-  :group 'scheme)
+  :group 'yin)
 
 (defvar dsssl-imenu-generic-expression
   ;; Perhaps this should also look for the style-sheet DTD tags.  I'm

     '("(\\(element\\)\\>[ 	]*(\\(\\S)+\\))"
       (1 font-lock-keyword-face)
       (2 font-lock-type-face))
     '("\\<\\sw+:\\>" . font-lock-constant-face) ; trailing `:' c.f. scheme
     ;; SGML markup (from sgml-mode) :
     '("<\\([!?][-a-z0-9]+\\)" 1 font-lock-keyword-face)
     '("<\\(/?[-a-z0-9]+\\)" 1 font-lock-function-name-face)))


;; FIXME this duplicates almost all of lisp-indent-function.
;; Extract common code to a subroutine.
(defun yin-indent-function (indent-point state)
  "Yin mode function for the value of the variable `lisp-indent-function'.
This behaves like the function `lisp-indent-function', except that:

i) it checks for a non-nil value of the property `yin-indent-function'
\(or the deprecated `yin-indent-hook'), rather than `lisp-indent-function'.

ii) if that property specifies a function, it is called with three
arguments (not two), the third argument being the default (i.e., current)
