Now I have a problem with partially displaced structures -- that is, structures
which share some (but not all) slots.
The only way I can think of guaranteeing that any pair of slots in two
instances of a structure are EQ is by using a displaced array to hold the
contents of the slot. -- can anyone comment on that?
Apropos, I notice that fill-pointers are not automatically adjusted in
displaced vectors, at least in KCl and Lucid, eg:
> (setq v1 (make-array 4 :fill-pointer 0))
> (setq v2 (make-array 4 :fill-pointer (fill-pointer v1) :displaced-to v1))
> (vector-push :foo v1)
0
> v1
#(:FOO)
> v2
#()
> (aref v2 0)
:FOO
> (vector-push :baz v2)
0
> v2
#(:BAZ)
> v1
#(:BAZ)
Surely this is the wrong behaviour? How can I make sure that the fill-pointers
are adjusted?