anchor.diff:                  [ match tcref.TypeReprInfo with
                     | TMeasureableRepr reprTy ->
                          for ity in GetImmediateInterfacesOfType skipUnref g amap m reprTy do
  -                          if isAppTy g ity then
  -                              let itcref = tcrefOfAppTy g ity
  +                          match tryTcrefOfAppTy g ity with
  +                          | ValueNone -> ()
  +                          | ValueSome itcref ->
                                 if not (tyconRefEq g itcref g.system_GenericIComparable_tcref) &&
  -                                 not (tyconRefEq g itcref g.system_GenericIEquatable_tcref)  then
  +                                 not (tyconRefEq g itcref g.system_GenericIEquatable_tcref) then
                                      yield ity
                     | _ -> ()
                     yield mkAppTy g.system_GenericIComparable_tcref [ty]
  
positive.code: let private FoldHierarchyOfTypeAux followInterfaces allowMultiIntfInst skipUnref visitor g amap m ty acc =
      let rec loop ndeep ty ((visitedTycon, visited: TyconRefMultiMap<_>, acc) as state) =
  
          let seenThisTycon = isAppTy g ty && Set.contains (tcrefOfAppTy g ty).Stamp visitedTycon
  
          // Do not visit the same type twice. Could only be doing this if we've seen this tycon
          if seenThisTycon && List.exists (typeEquiv g ty) (visited.Find (tcrefOfAppTy g ty)) then state else
  
negative.code:         if seenThisTycon && allowMultiIntfInst = AllowMultiIntfInstantiations.No then state else
  
          let state =
              match tryTcrefOfAppTy g ty with
              | ValueSome tcref ->
                  let visitedTycon = Set.add tcref.Stamp visitedTycon
                  visitedTycon, visited.Add (tcref, ty), acc
              | _ ->
                  state
  
          if ndeep > 100 then (errorR(Error((FSComp.SR.recursiveClassHierarchy (showType ty)), m)); (visitedTycon, visited, acc)) else
  