using ErasureMap, I think you'll get exactly the same type (by reference) when nothing changes -- not 100% sure though