If-Else -- ternary conditional operator, equivalent of "?:" in C++ and Java.
"NaNs poison". If the test is a NaN, evaluate neither side and return a NaN
"Frames poison". If the test is a Frame, both sides are evaluated and selected between according to the test.
The result is a Frame. All Frames must be compatible, and scalars and 1-column Frames are widened to match the
widest frame. NaN test values produce NaN results.
If the test is a scalar, then only the returned side is evaluated. If both sides are scalars or frames, then the
evaluated result is returned. The unevaluated side is not checked for being a compatible frame. It is an error
if one side is typed as a scalar and the other as a Frame.