anchor.diff:  
       and getTypedDictionaryReader (t : Type) =
           // TODO: this does not look sane at all
  -        let reader = Type.GetType("SharpXml.DictionaryDeserializer").GetMethod("dictReader")
  +        let flags = BindingFlags.NonPublic ||| BindingFlags.Static
  +        let reader = Type.GetType("SharpXml.DictionaryDeserializer").GetMethod("dictReader", flags)
           let key, value = getDictTypeArguments t
           let mtd = reader.MakeGenericMethod([| key; value |])
           let keyReader = getReaderFunc key
  
positive.code:         | _ -> None
  
  /// Dictionary related deserialization logic
  module DictionaryDeserializer =
  
      open System.Collections
      open System.Collections.Generic
  
negative.code: 
      let getGenericListFunction name t =
          // TODO: I don't like this string-based reflection at all
          let flags = BindingFlags.NonPublic ||| BindingFlags.Static
          let reader = Type.GetType("SharpXml.ListDeserializer").GetMethod(name, flags)
          reader.MakeGenericMethod([| t |])
  
      /// Try to find the static 'ParseXml' method on the specified type
      let findStaticParseMethod (t : Type) =
          t.GetMethod(parseMethodName, parseMethodFlags, null, [| typeof<string> |], null)
          |> toOption
  
      /// Try to get a reader based on the type's static 'ParseXml' method
      let getStaticParseMethod (t : Type) = fun () ->
  