anchor.diff:                       // gives reliable results on null values.
                        System.String.CompareOrdinal((# "" x : string #),(# "" y : string #))
                    when 'T : decimal     = System.Decimal.Compare((# "" x:decimal #), (# "" y:decimal #))
  +                 when 'T : DateTime = System.DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #))
   
   
               /// Generic comparison. Implements ER mode (where "0" is returned when NaNs are compared)
  
positive.code:                 when 'T : float32    = not (# "clt.un" x y : bool #)
                  when 'T : char       = not (# "clt" x y : bool #)
                  when 'T : decimal     = System.Decimal.op_GreaterThanOrEqual ((# "" x:decimal #), (# "" y:decimal #))
  
  
              //-------------------------------------------------------------------------
  
negative.code:                   when 'T : unativeint  = (# "ceq" x y : bool #)
                    when 'T : string  = System.String.Equals((# "" x : string #),(# "" y : string #))                  
                    when 'T : decimal     = System.Decimal.op_Equality((# "" x:decimal #), (# "" y:decimal #))
                    when 'T : DateTime = DateTime.Equals((# "" x : DateTime #), (# "" y : DateTime #))
                    
  
              let inline GenericInequalityFast (x:'T) (y:'T) = (not(GenericEqualityFast x y) : bool)
  