Summary
And there you have it; how to introspect instance/class variables, types, and methods at compile time! This metaprogramming technique can be used to create powerful code generation logic that can make applications easy to extend and use, all the while making the application more robust by reducing the chance of typos or user error.
Next up, in the final chapter of this part, we are going to look at some examples of how all of the metaprogramming concepts learned so far can be combined into more advanced patterns/features.