Change: the design and implementation of "defer" block;
Remove: builtin function "recover()" (use the new defer block instead);
Fix: a few minor bugs.
Ad:: minor changes.