Aspects cut new interfaces through the primary decomposition of a system. This implies that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent property of crosscutting concerns, and using aspect-oriented programming enables modular reasoning in the presence of such concerns. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features ? classes and objects, modules, packages. General Terms Languages, Theory. Keywords Aspect-oriented programming, modularity, modular reasoning.