Fix the ordering of user prototypes a bit.
Add swap_out method to user.
Handle caller destruction in eval.