Falha na obtenção do nome do objeto para o método de impressão S3

Defina um objeto da classe "barra" S3 e um método de impressão:

foo=list(1)
class(foo) <- c("bar")
print.bar <- function(x,...){
  cat("print.bar says this was ",deparse(substitute(x)),"\n")
}

Agora print (foo) faz o seguinte:

> print(foo)
print.bar says this was  foo 

Ótimo, mas a impressão automática falha:

> foo
print.bar says this was  structure(list(1), class = "bar")

Acho que isso tem algo a ver com a maneira como a linha é avaliada como uma expressão de nível superior. Teve uma rápida pesquisa no R-devel sem sucesso. Alguém sabe como consertar isso?

O motivo pelo qual desejo o nome é porque o que estou definindo é uma função e quero poder colocar 'try foo (2)' no método de impressão (obtendo 'foo' do nome do objeto). Sim, você pode subclassificar funções no S3. Suponho que possa haver outros pifalls ..

questionAnswers(2)

yourAnswerToTheQuestion