which would create a new data structure.  I wonder if that wouldn't give us significant to consider penalty at some point or result in some other side-effect we might like to avoid (e.g. relying on identity of the list)?
i.e. wouldn't it be worth checking first and if already conformant -- use original value?