I've added some tree support (term recursion is already taken by arrays)