anchor.diff:              Atom.updateAtomDict propertyCache t props
   
       /// Writer for classes and other reference types
  -    and writeClass (writer : TextWriter) (value : obj) =
  -        let t = value.GetType()
  -        getProperties t
  -        |> Seq.iter (fun p ->
  +    and writeClass props (writer : TextWriter) (value : obj) =
  +        props
  +        |> Array.iter (fun p ->
               let v = p.GetFunc.Invoke(value)
               if v <> null then
  -                writeTag writer p.ClsName p.WriteFunc v)
  +                let writeFunc = p.WriteFunc.Value
  +                writeTag writer p.ClsName writeFunc v)
   
       /// Try to determine a class or interface serialization function
       and getClassWriter (t : Type) = fun () ->
  
positive.code:           OriginalName = propInfo.Name
            ClsName = propInfo.Name.ToCamelCase()
            GetFunc = Reflection.getObjGetter propInfo
            WriteFunc = getWriterFunc propInfo.PropertyType
            Default = Reflection.getDefaultValue propInfo.PropertyType }
  
      /// Try to determine a enumerable serialization function
  
negative.code:             if t.IsAbstract && not t.IsInterface then
                  Some writeAbstractProperties
              else
                  let properties = getProperties t
                  Some (writeClass properties)
          else None
  
      /// Try to determine a writer function for a dictionary
  