Example: ``` rust fn main() { let mut x = Some(~1); let mut p: proc(&mut Option<~int>) = proc(_) {}; match x { Some(ref y) => { p = proc(z: &mut Option<~int>) { *z = None; println!("{}", y); } } None => {} } p(&mut x); } ``` The last statement `p(&mut x)` is mutably borrowing x but x is already borrowed (or rather should be) by the proc. The result is a program that compiles fine but segfaults when run.