> The first of these complaints that it wants a list, the second says is
> is a list:
No it doesn't.
> ;; (length '(prop . val))
Debugger entered--Lisp error: (wrong-type-argument listp val)
length((prop . val))
So it's saying that val should be a list:
(length '(prop . (val)))
2
'(prop . (val))
(prop val)
> ;; (listp '(prop . val))
-- Function: length sequence
This function returns the number of elements in SEQUENCE. If
SEQUENCE is a dotted list, a `wrong-type-argument' error is
signaled.
I would start with the manual.