It seems to me the logic of `merge/2` is getting obscured and complicated by the actor-replacement/compression stuff. Why not compute the actor-replacements when serializing/deserializing instead? Then you could optimize cases where, say, the clock of one ORSWOT strictly dominates the other. You would also simplify the rest of the merge logic by using the actual actor IDs.