The manual for instrumenting macros states that part of the spec can be a symbol:
> Any other symbol in a specification list may be a predicate or an indirect
> specification.
>
> If the symbol has an Edebug specification, this indirect specification should
> be either a list specification that is used in place of the symbol, or a
> function that is called to process the arguments. The specification may be
> defined with def-edebug-spec just as for macros. See the defun example.
>
> Otherwise, the symbol should be a predicate. The predicate is called with the
> argument, and if the predicate returns nil, the specification fails and the
> argument is not instrumented.
> Some suitable predicates include symbolp, integerp, stringp, vectorp, and atom.
From this, it's not clear to me what it means for a function to "process" the
arguments. For example, I would like to see if the arguments match one of
several specs. Something like
(cl-dolist (spec my-specs)
(when (edebug-apply spec args)
(cl-return t)))
Is this possible?