Fix canonical< for tree and string