This is functionally identical to the OCaml equality test = except that it is
reflexive even on floating-point NaN. More importantly, it will more
efficiently short-cut comparisons of large data structures where subcomponents
are identical (pointer equivalent).
May fail when applied to functions.
# let x = 0.0 /. 0.0;;
val x : float = nan
# x = x;;
val it : bool = false
# x =? x;;
val it : bool = true