Using a parameterized Preserve[E] type is too much hassle. Replace with a Value type with an embedded field of "ref RootObj".