anchor.diff:                  when 'T : float32    = (# "cgt" x y : bool #) 
                   when 'T : char       = (# "cgt" x y : bool #)
                   when 'T : decimal     = System.Decimal.op_GreaterThan ((# "" x:decimal #), (# "" y:decimal #))
  +                when 'T : DateTime = DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #)) > 0
   
               /// Generic less-than-or-equal with static optimizations for some well-known cases.
               let inline GenericLessOrEqualFast (x:'T) (y:'T) = 
  
positive.code:                 when 'T : float32= (# "clt" x y : bool #) 
                  when 'T : char   = (# "clt" x y : bool #)
                  when 'T : decimal     = System.Decimal.op_LessThan ((# "" x:decimal #), (# "" y:decimal #))
                
              /// Generic greater-than with static optimizations for some well-known cases.
              let inline GenericGreaterThanFast (x:'T) (y:'T) = 
  
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)
  