Hi,
The return value of FIND-DEFINITIONS isn't specified as rigorously as I'd like; I'm referring to its DSPEC part specially.
For instance, on CMUCL:
(find-definitions #'car) ==> (((FUNCTION CAR) ..location..) ...)
whereas on SBCL
(find-definitions #'car) ==> (((DEFUN CAR) ..location..) ...)
Similiarly, CMUCL returns a dspec (VARIABLE :SPECIAL *FOO*) whereas SBCL returns (DEFVAR *FOO*).
I'd like to specify that a DSPEC is either
a symbol, or
a list where the CAR is the defining symbol (DEFVAR for variables, DEFUN for function, &c.) that resulted in the respective definition, the CADR is the name of the thing, and optionally there's an extra description as the rest argument (specializing arglist for methods, for instance.)
Furthermore, I'd like to explicitly validate this with a DESTRUCTURE-CASE such that each backend implementator can directly see what's expected.
Opinions?
-T.