There’s no way to traverse a type’s instance vars outside of a method definition. This is a limitation of the language. The problem is that finished
runs before the instance variables are computed, mainly because finished
can define new instance vars… and then if those instance vars are defined or changed there… it’s a bit confusing.
Actually, the whole finished
thing is confusing. These macros, together with annotations, should be revisited some day.