A wrapper type with no DerefMut impl, disallowing mutation
DerefMut
use domain_list::freeze::Freeze; let mut v = Freeze::new(vec![1, 2, 3]); v.push(1); // ERROR - cannot borrow data in dereference of ...