As happens so many times, a few tries later, I figured out that I need
to do this:

...
    def T::t(x)
...

And then all works fine.

Which leads to the follow: why was the language designed this way? It
all seems a bit redundant.

And if I still keep the original def t(x), how can it be used?

Thanks,
Tom