">  I don't understand you want that
>
>  'sym=' is interpreted as self.sym=
>
>  and
>
>  'sym =' interpreted as a local variable ?
I did not understand that the parsing rules of
Ruby imply that  a plain `sym =  x' is interpreted
as a  '(self.sym)  =   x' ... .

> C>    def attr_inner_accessor  sym
> C>          attr_accessor sym
> C>          include ThisPointerModule
> C>          extend ThisPointerModule
> C>          module_eval   "def set_#{sym.to_s} (x) \
> C>                       @__this__.#{sym.to_s} =  x end"
> C>     end
>
>  If I've well understood your source, you replace a NODE_ATTRSET with a
> call to a def (which is slower), no ?
Aside form the fact that the whole endeavor is unnecessary
``include ThisPointerModule''
``extend ThisPointerModule''
turns the methods of  ``ThisPointerModule'' into class
method (and is faster then eval I think.)

Christoph