anchor.diff:                             // Also, in the declared values case, if the sequence is actually a known non-lazy type (list, array etc etc) we could print it.  
                              wordL "<seq>" |> showModeFilter
                       | _ ->
  -                         if showMode = ShowTopLevelBinding && typeUsesSystemObjectToString (obj.GetType()) then
  +                         if showMode = ShowTopLevelBinding && typeUsesSystemObjectToString ty then
                              emptyL
                            else
                              countNodes 1
  
positive.code:                             Some (wordL (x.ToString()))
                            else
                              // Try the StructuredFormatDisplayAttribute extensibility attribute
                              match x.GetType().GetCustomAttributes (typeof<StructuredFormatDisplayAttribute>, true) with
                              | null | [| |] -> None
                              | res -> 
                                 let attr = (res.[0] :?> StructuredFormatDisplayAttribute) 
  
negative.code:                         
                      // Format 'set' and 'map' nicely
                      | _ when  
                            (ty.IsGenericType && (ty.GetGenericTypeDefinition() = typedefof<Map<int,int>> 
                                                  || ty.GetGenericTypeDefinition() = typedefof<Set<int>>) ) ->
                           let word = if ty.GetGenericTypeDefinition() = typedefof<Map<int,int>> then "map" else "set"
                           let possibleKeyValueL v = 
                               let tyv = v.GetType()
                               if word = "map" &&
                                  (match v with null -> false | _ -> true) && 
                                  tyv.IsGenericType && 
                                  tyv.GetGenericTypeDefinition() = typedefof<KeyValuePair<int,int>> then
                                    objL depthLim Precedence.BracketIfTuple (tyv.GetProperty("Key").GetValue(v, [| |]), 
                                                                             tyv.GetProperty("Value").GetValue(v, [| |]))
                               else
                                    objL depthLim Precedence.BracketIfTuple v
                           let it = (obj :?>  System.Collections.IEnumerable).GetEnumerator() 
  