Hi,

I had some unexpected results while looking at some primitives in the system, and I wanted to ask if they are expected/intentional:

1. 'ab' instVarAt: 1    =>    97    (and 'ab' instVarAt: 2    =>    98)
    I would have thought that #instVarAt: has pointer granularity, so I am curious if the observed behavior is an accident or intentional (and maybe even used somewhere)

2. | o | o := Object new. (WeakArray with: o) pointsTo: o    =>    true
    I thought the main use case for #pointsTo: was to find hard references (e.g. for chasing memory leaks). The current behavior actually makes that use case a little more difficult to implement, since you have to special case weak references. When would one be interested in finding weak references?

3. The comment and the primitive used in #ensure: and #ifCurtailed: are the same, but the primitive failure code is different - the one for #ifCurtailed seems buggy, it never evaluates the argument

None of the above are critical, but I am curious about them.
Thank you in advance for any clarifications,

Florin