anchor.diff:              // functionality of GenericSpecializedHash should match GenericHashParamObj, or return null
               // for fallback to that funciton. 
               module GenericSpecializeHash =
  -                let makeType (ct:Type) (def:Type) =
  -                    def.MakeGenericType [|ct|]
  -
                   let mutable private tupleHandler = null
                   let addTupleHandler f =
                       match box tupleHandler with
  
positive.code: 
                  let defaultEquality tyRelation ty =
                      match tyRelation with
                      | r when r.Equals typeof<PartialEquivalenceRelation> -> makeType ty typedefof<GenericEqualityObj_PER<_>>
                      | r when r.Equals typeof<EquivalenceRelation>        -> makeType ty typedefof<GenericEqualityObj_ER<_>>
                      | _ -> raise (Exception "invalid logic")                    
  
                  let getEqualsEssenceType (tyRelation:Type) (ty:Type) : Type =
  
negative.code:                     member __.Info = EqualityComparerInfo.ER }
  
              module GenericSpecializeEquals =
                  let mutable private tupleHandler = null
                  let addTupleHandler f =
                      match box tupleHandler with
  