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 ..