type Tree = { [k: string]: Tree | T; };