Here is an interesting discussion item we should have clarity about in the context of AP, specifically DemeterF: http://community.aosd.net/statement/1/ The notion of being an inherently cross-cutting concern does not exist Posted by Erik Ernst at Friday, March 28, 2008 11:37 AM. It is a matter of (1) the power of the available abstraction mechanisms, and (2) the choice of organizational principles in the design of the software system under scrutiny whether or not the set of software elements associated with a given concern is cross-cutting or not. Such a set of software elements may be distributed in a cross-cutting manner in a concrete system written using one or more concrete languages. As soon as somebody manages to express the concern modularly by reshaping the architecture or creating and using new abstraction mechanisms, this concern becomes non-cross-cutting, so it was never *inherently* cross-cutting. The notion of being a *currently* cross-cutting concern does exist, though, and the really interesting issue is how we can move concrete concerns out of this sad state by means of improvements of the basic theories and technologies. ;-) ================================= The question is: are traversals a cross-cutting concern? In DemeterF we abstract them out into the Traversal and CompTraversal class. We have the notion of access free function objects (AFFO): those are function objects that do not explicitely access fields in the traversed structure. They may access fields that are in a tuple class used by the function object. In an AFFO ther is no information about traversal but many implicit assumtions about the class graph that must be formulated explicitly as part of a Demeter Interface. But do we view traversals as inherently crosscutting because they cut across both the class graph as well as the AFFO?