Subject: RE: bug#21709: 25.0.50; doc of :variable in `define-minor-mode'

From: Drew Adams <[email-masked]>
Date: Mon, 19 Oct 2015 10:52:10 -0700 (PDT)

> A state could be a single variable, it could be a dozen variables, it
> could be a file on the disk [which GET reads and SET writes] - the point
> is to have an abstraction that doesn't care what it is.

OK; right.  In that case there is still no reason to speak of a "state".
In that case, the GET sexp can do *anything* and so can the SET function.

> Seems like what it really is is a "hackish" way to define a generalized
> variable without actually defining one. A sort of "generalized variable
> lambda" except for the fact that setf doesn't actually support it.

Yup, and not made clear by the doc.

(FWIW, grepping the Emacs Lisp sources, it seems that a non-variable
PLACE is used only a few times.)

And perhaps this should be mentioned in the doc:  Using :variable prevents
`d-m-m' from defining the variable again, if it was already defined by
C code.  This idiom is used several times in the Emacs Lisp source code.
E.g.: (define-minor-mode abbrev-mode "..." :variable abbrev-mode)