This document discusses reflection in programming languages. It covers:
1. Structural reflection, which models program structures like classes and methods as objects, but does not reflect below the method level.
2. The need for sub-method reflection to support tools that work at finer granularities.
3. The author's approach of using reflective methods, which are annotated abstract syntax trees, to enable both structural and behavioral reflection below the method level.