Dear David: congratulations to your IEEE computer article, Design Patterns and Language Design, pages 118-120, March 1998. I think that it clarifies some important issues. I agree with your arguments, except with the argument that there is very little need for the visitor pattern if you use a multi-method OO language such as CLOS. For me, one important feature of one incarnation of the visitor pattern is that it localizes structure into a set of accept methods. When you use the visitor pattern by doing the traversal with the accept methods and the visiting tasks with visitor objects you have the advantage that object structure is spelled out in the accept methods which can be used for implementing several different tasks. When the class structure changes, you need only update once the accept methods instead of the code for all the different tasks. This localization of structural information is also very helpful for languages with multi-methods. In a way, your argument says that Adaptive Programming is not useful for CLOS. But the CLOS community developed a version of Demeter for CLOS: http://www.ccs.neu.edu/research/demeter/pub-impls/DEM-in-Lisp/copy-of-kens.html -- Karl