I was looking over Christophe's dendrogram sample code, and was
surprised to find the following in the comments:
"...this one is technically non-conforming, in that
FORMAT-GRAPH-FROM-ROOTS isn't specified as &KEY &ALLOW-OTHER-KEYS"
I went back to the spec and yes, AFAICT, the format-graph-from-roots
function is specified as NOT being extendible with new keyword
arguments.
With all due respect, this seems kooky, since FORMAT-GRAPH-FROM-ROOTS'
interface seems poorly structured to do much of anything beyond trees
or graphs that are essentially tree-like. The interface seems poor if
you want to have edges of different flavors, if you want to control the
assignment of depths, etc.
Now, of course, you can do a pretty arbitrary amount of customization
by developing new graph-output-records. BUT... the spec as written
(to the best of my understanding) doesn't provide any way to customize
these new output record classes with initargs. Not only doesn't
format-graph-from-roots as specified allow for extending its argument
set, it also doesn't specify (again, as far as I can tell), how to
pass initargs to the new class.
The McCLIM implementation takes what seems to me to be a very sensible
approach of passing extra keyword arguments from
format-graph-from-roots into the make-instance for the
GRAPH-OUTPUT-RECORD, but this is an extension to the specification.
Question: have I misread the specification, or is this a deficiency
in it?
Cheers,
Robert