COOL allows the user to e the messagehandlers for a class within the defclass statement. These declarations are for only and are ignored by CLIPS. The defmessagehandler construct must be used to actually add messagehandlers to a class. Messagehandlers can later be added which are not documented in the defclass.
Example
CLIPS> (clear) CLIPS> (defclass rectangle (is-a USER) (slot side-a (default 1)) (slot side-b (default 1)) (message-handler find-area)) CLIPS> (defmessage-handler rectangle find-area () (* ?self:side-a ?self:side-b)) CLIPS> (defmessage-handler rectangle print-area () (printout t (send ?self find-area) crlf)) CLIPS>