anchor.diff:                  match comp with
                   | :? GenericComparer as info ->
                       match info.ComparerType with
  -                    | ComparerType.ER     -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<EquivalenceRelation,_>.Func.Ensorcel (comp, x, y))
  -                    | ComparerType.PER_gt -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<PartialEquivalenceRelation,_>.Func.Ensorcel (comp, x, y))
  -                    | ComparerType.PER_lt -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<PartialEquivalenceRelation,_>.Func.Ensorcel (comp, x, y))
  +                    | ComparerType.ER     -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<EquivalenceRelation,_>.Invoker.Invoke (comp, x, y))
  +                    | ComparerType.PER_gt -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<PartialEquivalenceRelation,_>.Invoker.Invoke (comp, x, y))
  +                    | ComparerType.PER_lt -> eliminate_tail_call_int (GenericSpecializeCompareTo.Function<PartialEquivalenceRelation,_>.Invoker.Invoke (comp, x, y))
                       | _ -> raise (Exception "invalid logic")
                   | c when obj.ReferenceEquals (c, Comparer<'T>.Default)   ->
                       eliminate_tail_call_int (Comparer<'T>.Default.Compare (x, y))
  
positive.code:                 let getEssenceOfCompareToType (tyRelation:Type) (ty:Type) =
                      let compareTo = mos.makeGenericType<GenericSpecializeCompareTo.Function<_,_>> [|tyRelation; ty|]
                      match Activator.CreateInstance compareTo with
                      | :? GenericSpecializeCompareTo.IGetEssenceOfComparerType as getter -> getter.Get ()
                      | _ -> raise (Exception "invalid logic")
  
                  type t = Specializations.ComparerTypes.Int32
  
negative.code:             type private PartialEquivalenceRelation = class end
  
              module mos =
                  type IGetType =
                      abstract Get : unit -> Type
                              
                  let makeGenericType<'a> tys =
                      let typedef = typedefof<'a>
                      typedef.MakeGenericType tys
  