anchor.diff:          let Float32Comparer = MakeGenericComparer<float32>()
           let DecimalComparer = MakeGenericComparer<decimal>()
   
  +        let getFastGenericComparerTable ty =
  +            match ty with 
  +            | ty when ty.Equals typeof<byte>       -> box ByteComparer
  +            | ty when ty.Equals typeof<char>       -> box CharComparer
  +            | ty when ty.Equals typeof<sbyte>      -> box SByteComparer
  +            | ty when ty.Equals typeof<int16>      -> box Int16Comparer
  +            | ty when ty.Equals typeof<int32>      -> box Int32Comparer
  +            | ty when ty.Equals typeof<int64>      -> box Int64Comparer
  +            | ty when ty.Equals typeof<nativeint>  -> box IntPtrComparer
  +            | ty when ty.Equals typeof<uint16>     -> box UInt16Comparer
  +            | ty when ty.Equals typeof<uint32>     -> box UInt32Comparer
  +            | ty when ty.Equals typeof<uint64>     -> box UInt64Comparer
  +            | ty when ty.Equals typeof<unativeint> -> box UIntPtrComparer
  +            | ty when ty.Equals typeof<float>      -> box FloatComparer
  +            | ty when ty.Equals typeof<float32>    -> box Float32Comparer
  +            | ty when ty.Equals typeof<decimal>    -> box DecimalComparer
  +            | ty when ty.Equals typeof<string>     -> box StringComparer
  +            | _ -> null
  +
           /// Use a type-indexed table to ensure we only create a single FastStructuralComparison function
           /// for each type
           [<CodeAnalysis.SuppressMessage("Microsoft.Performance","CA1812:AvoidUninstantiatedInternalClasses")>]     
           type FastGenericComparerTable<'T>() = 
  -
  +            static let f : System.Collections.Generic.IComparer<'T>  = 
  +                match getFastGenericComparerTable typeof<'T> with 
  +                | null -> MakeGenericComparerWithEssence<'T>()
  +                | ic -> unboxPrim ic
  +
  +            static member Value : System.Collections.Generic.IComparer<'T> = f
  +
  +        let getFastGenericComparerTable_fCanBeNull ty =
               // The CLI implementation of mscorlib optimizes array sorting
               // when the comparer is either null or precisely
               // reference-equals to System.Collections.Generic.Comparer<'T>.Default.
  
positive.code:              // which are then optimized for the particular nominal type involved.
              when 'T : 'T = MakeGenericComparer<'T>()
              
          let FastGenericComparerCanBeNull<'T> = FastGenericComparerTable<'T>.ValueCanBeNullIfDefaultSemantics
  
          //-------------------------------------------------------------------------
          // LanguagePrimitives: ENUMS
  
negative.code:         let Float32IEquality = MakeGenericEqualityComparer<float32>()
          let DecimalIEquality = MakeGenericEqualityComparer<decimal>()
  
          let getFastGenericEqualityComparerTable ty =
              match ty with 
              | ty when ty.Equals typeof<bool>       -> box BoolIEquality
              | ty when ty.Equals typeof<byte>       -> box ByteIEquality
              | ty when ty.Equals typeof<int32>      -> box Int32IEquality
              | ty when ty.Equals typeof<uint32>     -> box UInt32IEquality
              | ty when ty.Equals typeof<char>       -> box CharIEquality
              | ty when ty.Equals typeof<sbyte>      -> box SByteIEquality
              | ty when ty.Equals typeof<int16>      -> box Int16IEquality
              | ty when ty.Equals typeof<int64>      -> box Int64IEquality
              | ty when ty.Equals typeof<nativeint>  -> box IntPtrIEquality
              | ty when ty.Equals typeof<uint16>     -> box UInt16IEquality
              | ty when ty.Equals typeof<uint64>     -> box UInt64IEquality
              | ty when ty.Equals typeof<unativeint> -> box UIntPtrIEquality
              | ty when ty.Equals typeof<float>      -> box FloatIEquality
              | ty when ty.Equals typeof<float32>    -> box Float32IEquality
              | ty when ty.Equals typeof<decimal>    -> box DecimalIEquality
              | ty when ty.Equals typeof<string>     -> box StringIEquality
              | _ -> null
  
          [<CodeAnalysis.SuppressMessage("Microsoft.Performance","CA1812:AvoidUninstantiatedInternalClasses")>]     
          type FastGenericEqualityComparerTable<'T>() = 
              static let f : System.Collections.Generic.IEqualityComparer<'T> = 
                  match getFastGenericEqualityComparerTable typeof<'T> with 
                  | null -> MakeGenericEqualityComparerWithEssence<'T>()
                  | iec -> unboxPrim iec
              static member Function : System.Collections.Generic.IEqualityComparer<'T> = f
  
          let FastGenericEqualityComparerFromTable<'T> = FastGenericEqualityComparerTable<'T>.Function
  