http://stofl.org/questions/5942518/implementing-a-good-c0x-error-condition: