Fix a prototype bug / use Return::MultiLevel to make eval { exit } work

What do you think?