safeStore stores new in a, iff old & new are of the same concrete type. If old & new are not of the same concrete type, it creates a Volatile with new. If new is nil, sets a to NewZeroVolatile[T]. If a is nil, does nothing. This func is not atomic.
(old, new T)