This document discusses reflection in the Squeak programming language. It covers sub-method structural reflection using Reflective Methods, which allow annotations and extensibility at the bytecode level. It also discusses partial behavioral reflection using hooksets and metaobjects to selectively reflect on method execution and message sending. Examples are given for implementing a profiler and pluggable type system using these reflective capabilities.