The code below generates a type error claiming that the "override" keyword is needed. Once it is added, the type checker will be happy, but the compiler will crash during an optimization phase. I don't believe that the demand for the "override" keyword is warranted since the code will compile and execute fine without it when the argument types are Int? and Int?? instead of Int and Int?.