question: public static < T > TreeNode < T > copy ( TreeDef < T > treeDef , T root ) { return copy ( treeDef , root , Function . identity ( ) ) ; }
target:  Creates a hierarchy of TreeNodes that copies the structure and content of the given tree. 