On Mon, Apr 21, 2008 at 10:38 AM, Peter Hildebrandt <[EMAIL PROTECTED]> wrote: > As a proof of concept, I changed not-to-be to be
There's something weird going on, i.e. it is not called reliably on the kids slot. The follwoing works better: (defmethod not-to-be :before ((fm family)) (let ((sv-kids (slot-value fm '.kids))) (when (listp sv-kids) (dolist ( kid sv-kids) (not-to-be kid)))) (bwhen (ownings (get (type-of fm) :ownings) ) (loop for (slot . nil) in ownings do (unless (eql slot '.kids) (bwhen (owned (slot-value fm slot)) (if (listp owned) (mapc #'not-to-be owned) (not-to-be owned))))))) > It used to be: > > (defmethod not-to-be :before ((fm family)) > (let ((sv-kids (slot-value fm '.kids))) > (when (listp sv-kids) > (dolist ( kid sv-kids) > (not-to-be kid)))) > > I haven't committed it yet, because I'd like to hear your opinion, > especially on what this might break :-) > > Peter > _______________________________________________ cells-devel site list cells-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-devel