The title is somewhat misleading: rather than checking if an object is modified, this really checks to see if a name points to the same object.
track_copy(var, env = parent.frame(), quiet = FALSE)a zero-arg function, that when called returns a boolean indicating if the object has changed since the last time this function was called
a <- 1:5
track_a <- track_copy(a)
track_a()
a[3] <- 3L
track_a()
#> a copied
a[3] <- 3
track_a()
#> a copied
rm(a)
track_a()