anchor.diff:  
               type private EquivalenceRelation = class end
               type private PartialEquivalenceRelation = class end
  -            type private UnknownRelation = class end
   
               module mos =
                   type IGetType =
  
positive.code: 
              let makeEqualityComparer (ty:Type) =
                  let eq = GenericSpecializeEquals.Helpers.getEssenceOfEqualsType typeof<PartialEquivalenceRelation> ty
                  let ghc = GenericSpecializeHash.Helpers.getEssenceOfGetHashCodeType typeof<PartialEquivalenceRelation> ty
                  let equalityComparerDef = typedefof<EssenceOfEqualityComparer<int,EqualsTypes.Int32,GetHashCodeTypes.Int32>>
                  let equalityComparer = equalityComparerDef.MakeGenericType [| ty; eq; ghc |]
                  Activator.CreateInstance equalityComparer
  
negative.code:                     interface mos.IGetType with
                          member __.Get () = essenceType
                  and Helpers =
                      static member getEssenceOfGetHashCodeType ty =
                          let getHashCode = mos.makeGenericType<Function<_>> [|ty|]
                          match Activator.CreateInstance getHashCode with
                          | :? mos.IGetType as getter -> getter.Get ()
                          | _ -> raise (Exception "invalid logic")
  
                      static member tuplesGetHashCode (ty:Type) : Type =
                          if ty.IsGenericType then
                              let tyDef = ty.GetGenericTypeDefinition ()
                              let tyDefArgs = ty.GetGenericArguments ()
                              let create = mos.compositeType Helpers.getEssenceOfGetHashCodeType tyDefArgs
                              if   tyDef.Equals typedefof<Tuple<_>>               then create typedefof<GetHashCodeTypes.Tuple<int,t>>
                              elif tyDef.Equals typedefof<Tuple<_,_>>             then create typedefof<GetHashCodeTypes.Tuple<int,int,t,t>>
                              elif tyDef.Equals typedefof<Tuple<_,_,_>>           then create typedefof<GetHashCodeTypes.Tuple<int,int,int,t,t,t>>
  