anchor.diff:  
                       | t when typeof<IStructuralEquatable>.IsAssignableFrom t ->
                           box GenericSpecializeEqualsOther.ReferenceTypeStructuralEquality
  -#endif
  -#if FX_ATLEAST_40
  -                    | t when t.IsSealed -> // only sealed as a derived class might inherit from IStructuralEquatable
  -                        box GenericSpecializeEqualsOther.ReferenceTypeSealed
   #endif
                       | _ -> null
   
  
positive.code:                                     | _,    null -> false
                                      | :? IStructuralEquatable as se, boxedb -> se.Equals (boxedb, ec)
                                      | _ -> raise (Exception "invalid logic"))
                              | GenericSpecializeEqualsOther.ReferenceTypeSealed ->
                                  upcast Func<IEqualityComparer,'a,'a,bool>(fun ec a b ->
                                      match box a, box b with
                                      | null, null -> true
                                      | null, _    -> false
                                      | _,    null -> false
                                      | a, b -> a.Equals b)
                              | GenericSpecializeEqualsOther.GenericEqualityObj_ER ->
                                  upcast Func<IEqualityComparer,'a,'a,bool>(fun (comp:IEqualityComparer) x y ->
                                      GenericEqualityObj true comp ((box x), (box y)))
  
negative.code:                         | null -> raise (Exception "invalid logic")
                          | :? GenericSpecializeEqualsOther as t ->
                              match t with
  #if FX_ATLEAST_40
  #else
                              | GenericSpecializeEqualsOther.ReferenceTypeStructuralEquality ->
                                  upcast Func<IEqualityComparer,'a,'a,bool>(fun ec a b ->
                                      match box a, box b with
  