This document discusses reflection capabilities in Pharo. It summarizes that Pharo represents all code as abstract syntax trees (ASTs) that can be annotated and manipulated. This enables powerful metaprogramming by allowing one to modify code at the AST level using annotations called "metalinks" that trigger actions during execution. Metalinks can invoke metaobjects, change control flow, and pass reification data, enabling tasks like debugging, profiling and automated code transformations.