> Stefan, do we have a way of causing the cl-defmethod dispatch reject a
> method due to a failed predicate? The relevant method of
> multisession.el says:
>
> (cl-defmethod multisession-backend-value ((_type (eql 'sqlite)) object)
>
> How can I modify this (or its callers?) to make this implementation be
> called only if sqlite-available-p returns non-nil?
AFAIK, the standard way to do that is:
(cl-defmethod multisession-backend-value ((_type (eql 'sqlite)) object)
(if (not (sqlite-available-p))
(cl-call-next-method)
...do the usual thing...))
> Btw, it looks like it's okay to have cl-defmethod without a
> cl-defgeneric for the same method? Is that expected?
Yes. It's a bit like having a `setq` on a global var without
a matching `defvar`.
Stefan