Part 1 of the question: In the following code why does value == default compile fine but the other alternatives do not?
value == default