É possível estender um objeto individual no Smalltalk

Eu estou fazendo pesquisa em reflexão Smalltalk, e eu queria saber se era possível estender um objeto individual como esse seria possível, por exemplo, em Ruby. Com isso quero dizer um seletor que apenas objetos específicos respondem.

Aqui está um código Ruby que indica o que quero dizer. Para esclarecimento: em Ruby, abra uma classe virtual para este objeto e estenda-o com uma nova definição. A parte vital aqui é que nada muda para a definição de classe!

o = Object.new
o.instance_eval {def foo;puts "foo";end}
o.foo #=> "foo"

#however this will fail:
m = Object.new
m.foo #=> NoMethod error

Mais especificamente, minha pergunta é se isso é possível no padrão Squeak / Pharo ou outras implementações smalltalk, sem adicionar estruturas substanciais ou código para permitir isso. Então, com outras palavras com recursos reflexivos regulares que existem no Smalltalk.

Como exemplo, é possível adicionar métodos, remover métodos, compilar novos códigos em uma classe, alterar variáveis ​​de instância e praticamente qualquer coisa, mas não encontrei uma maneira de estender um único objeto.

Test addInstVarNamed: #var.
Test compile: 'var ^var'.
t:= Test new.
Test instVarNames.
t instVarNamed: #var put: 666. 
t var. #=> 666

Se a resposta for não, então explique por quê. Eu não estou procurando resolver este problema, mas sim entender por que ele não está no smalltalk.

questionAnswers(6)

yourAnswerToTheQuestion