Tracing a trace?

Hey everyone,

Last night i found myself tracing a trace statement through a function by mistake but it lead to an interesting error!

if you try to run this -

trace(trace("Hello"));

it outputs -

Hello
undefined

Likewise, running this -

trace(trace(trace("Hello")));

outputs -

Hello
undefined
undefined

Obviously its not much of a problem since you’d never have to use it, but im interested in why it happens anyway :-/
Anyone have any insight into this?