Note that there's setDenot and withDenot. setDenot is the mutator. withDenot returns potentially a new tree and, where it does not, verifies that it does not overwrite any existing denotations. So I think the name is appropriate.