I must say I am shocked that this program is accepted. You can imagine what happens. ``` fn main () { let x = ~"hello"; let _y = x; let z: ~fn() = || { error!("%?", x); }; // program accepted with @fn or ~fn but not &fn z(); } ```