* rfct: top-down construction of TypeNode tree 
(better for immutability - depth and id can be final with this approach)