Module Without_infix.Ieee_nan

Operations where we use NaN semantics even though they are inconsistent with the remaining operators, e.g., >= violates the equivalance a >= b <-> a > b || a = b because it returns false for two none inputs.

module Infix : sig ... end

Returns false if either operand is none

include module type of Infix
val (<) : t -> t -> bool
val (<=) : t -> t -> bool
val (>) : t -> t -> bool
val (>=) : t -> t -> bool
val max : t -> t -> t

The result of max will be none if either operand is. This is inconsistent with compare, which considers none values "smaller" than everything else

val clamp_exn : t -> min:t -> max:t -> t

Returns none if any argument is none.