define-alternatives is a Lisp macro in `
(define-alternatives COMMAND &rest CUSTOMIZATIONS)
Define the new command `COMMAND'.
The argument `COMMAND' should be a symbol.
Running `M-x COMMAND RET' for the first time prompts for which
alternative to use and records the selected command as a custom
Running `C-u M-x COMMAND RET' prompts again for an alternative
and overwrites the previous choice.
The variable `COMMAND-alternatives' contains an alist with
alternative implementations of COMMAND. `define-alternatives'
does not have any effect until this variable is set.
CUSTOMIZATIONS, if non-nil, should be composed of alternating
`defcustom' keywords and values to add to the declaration of
`COMMAND-alternatives' (typically :group and :version).