+;;;--------------------------------------------------------------------------
+;;; Walking the layout tree.
+
+(defmethod hook-output progn ((class sod-class) reason sequencer)
+ (with-slots ((ilayout %ilayout) vtables methods effective-methods) class
+ (hook-output ilayout reason sequencer)
+ (dolist (method methods) (hook-output method reason sequencer))
+ (dolist (method effective-methods) (hook-output method reason sequencer))
+ (dolist (vtable vtables) (hook-output vtable reason sequencer))))
+
+(defmethod hook-output progn ((ilayout ilayout) reason sequencer)
+ (with-slots (ichains) ilayout
+ (dolist (ichain ichains) (hook-output ichain reason sequencer))))
+
+(defmethod hook-output progn ((ichain ichain) reason sequencer)
+ (dolist (item (ichain-body ichain))
+ (hook-output item reason sequencer)))
+
+(defmethod hook-output progn ((islots islots) reason sequencer)
+ (dolist (slot (islots-slots islots))
+ (hook-output slot reason sequencer)))
+
+(defmethod hook-output progn ((vtable vtable) reason sequencer)
+ (with-slots (body) vtable
+ (dolist (item body) (hook-output item reason sequencer))))
+
+(defmethod hook-output progn ((vtmsgs vtmsgs) reason sequencer)
+ (with-slots (entries) vtmsgs
+ (dolist (entry entries) (hook-output entry reason sequencer))))
+