when elements are added or removed, `ElementRange` objects pointing at the object type are invalidated; this should be documented