anchor.diff:  
       open SharpXml.Attempt
       open SharpXml.Extensions
  +    open SerializerBase
   
       let propertyCache = ref (Dictionary<Type, PropertyWriterInfo[]>())
       let serializerCache = ref (Dictionary<Type, WriterFunc>())
       let typeInfoCache = ref (Dictionary<Type, TypeInfo>())
  -
  -    /// General purpose XML tags writer function
  -    let writeTag (w : TextWriter) (name : string) writeFunc (value : obj) =
  -        w.Write("<{0}>", name)
  -        writeFunc w value
  -        w.Write("</{0}>", name)
   
       /// Try to determine one of a special serialization
       /// function, i.e. Exception, Uri
  
positive.code: 
      /// Get the writer function to serialize the
      /// specified type
      let getWriterFunc (t : Type) =
          match (!serializerCache).TryGetValue t with
          | true, serializer -> serializer
          | _ ->
  
negative.code:                 Some writeClass
          else None
  
      /// Try to determine a writer function for a dictionary
      and getDictionaryWriter (t : Type) = fun () ->
          if t.HasInterface(typeof<IDictionary>) ||
  