I understand what a double exclamation mark does (or I think I understand) but I am not sure how it is defined on a random object. For example in the code snippet below:
bool result = true; result = !!result; // result = true, e.g. !result is false, !!result is !false.