(defmacro and-boundp (variable &rest args)
(defmacro and-fboundp (function &rest args)
It'd be better to extend our byte-compiler trick to handle `and'
additionally to if and cond.
I agree.
declare-boundp is not needed, since defvar does the same job.
with-byte-compiler-warnings-suppressed offers a little more control
that with-no-warnings, but practically speaking I don't see a need for
that extra control. Using with-no-warnings around a small piece of
code suffices, practically speaking, to reduce the probability of
missing any useful warning to close enough to zero that it isn't
worth documenting another construct just to reduce it further.
There are some constructs suggested that I think would indeed be
useful: declare-fboundp, and perhaps with-boundp and with-fboundp.
However, someone else suggested using (defun foo) for the first,
which has the virtue of paralleling this use of defvar.
Whether the last two are useful enough to document, I am not sure.
I would not mind installing all the rest in a separate file just
for compatibility's sake, however.