anchor.diff:                      let pass2 =
                           match pass1 with
                           | null ->
  -                            if t.IsValueType then make typedefof<StructGetHashCode<GenericSpecializeEquals.DummyStructInterfaces>>
  -                            elif t.IsSealed  then make typedefof<RefTypeNullableGetHashCode<GenericSpecializeEquals.DummyRefTypeInterfaces>>
  +                            if t.IsValueType then make typedefof<StructGetHashCode<Exemplars.DummyTypes.ValueTypeEquatableInterfaces>>
  +                            elif t.IsSealed  then make typedefof<RefTypeNullableGetHashCode<Exemplars.DummyTypes.RefTypeEquatableInterfaces>>
                               else null
                           | f -> f
   
  
positive.code:                         let make = makeCompareDelegate t underlyingType 
                          let underlyingComparableGeneric = mos.makeComparableType underlyingType
                          
                          if typeof<IStructuralComparable>.IsAssignableFrom underlyingType   then make Exemplars.nullableStructualComparable
                          elif underlyingComparableGeneric.IsAssignableFrom underlyingType   then make Exemplars.nullableComparableGeneric
                          else                                                                    make Exemplars.nullableComparable
  
                      elif t.IsValueType && typeof<IStructuralComparable>.IsAssignableFrom t then make Exemplars.valueTypeStructualComparable
                      elif t.IsValueType && comparableGeneric.IsAssignableFrom t             then make Exemplars.valueTypeComparableGeneric
                      elif t.IsValueType && typeof<IComparable>.IsAssignableFrom t           then make Exemplars.valueTypeComparable
  
                      elif typeof<IStructuralComparable>.IsAssignableFrom t                  then make Exemplars.refTypeStructualComparable
  
                      // only sealed as a derived class might inherit from IStructuralComparable
                      elif t.IsSealed && comparableGeneric.IsAssignableFrom t                then make Exemplars.refTypeComparableGeneric
  
negative.code:                     upcast Delegate.CreateDelegate (makeGetHashCodeReturnType ty, instance, "GetHashCode")
  
                  type Calls =
                      static member StructuralEqualityGetHashCode<'a when 'a :> IStructuralEquatable> (ec, x:'a) = x.GetHashCode (ec) 
                      
                  type NullableStructuralEquality<'a when 'a : struct and 'a : (new : unit ->  'a) and 'a :> ValueType and 'a :> IStructuralEquatable>() =
                      member __.GetHashCode (ec:IEqualityComparer, x:Nullable<'a>) =
                          if x.HasValue then Calls.StructuralEqualityGetHashCode<'a> (ec, x.Value)
                          else 0
  
                  type NullableGetHashCode<'a when 'a : struct and 'a : (new : unit ->  'a) and 'a :> ValueType and 'a : equality>() =
  