I have used Pascal and C++ in the past, but it's a while ago.
Good point about the static type and the runtime type, thank you. Still, I had expected that `echo` \- at runtime - would know/use the dynamic type. That said, my interpretation now is that when the first `echo` call _is compiled_ , it only knows about `children` being `Node` s, so the compiled code only considers this generic case. I hope that makes sense. :-)