fn main() {
// boxed vec
let x = Box::new(vec![1,2,3,4]);
// DerefMove
// moves the vec out into y, then deallocates the box
// but does not call a destructor on the vec
let y = *x;
println!("{:?}", y);
// for any other type
let v = &vec![1,2,3,4];
// it gives an error:
let m = *v; // ERROR: cannot move out of borrowed content
}