We now have the concept of an “unset” value. This behaves just like an empty string, but it can be queried whether it is this special “unset” value. This value is now used as the return value when no explicit return statement is present. This way, the message box can detect whether there was an actual return value. If there wasn’t, it won’t obliterate the message box’s contents with an empty string anymore.