anchor.diff:              if t.IsAbstract && not t.IsInterface then
                   Some writeAbstractProperties
               else
  -                Some writeClass
  +                let properties = getProperties t
  +                Some (writeClass properties)
           else None
   
       /// Try to determine a writer function for a dictionary
  
positive.code:             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 ->
              let v = p.GetFunc.Invoke(value)
              if v <> null then
                  writeTag writer p.ClsName p.WriteFunc v)
  
      /// Try to determine a class or interface serialization function
      and getClassWriter (t : Type) = fun () ->
  
negative.code:           OriginalName = propInfo.Name
            ClsName = propInfo.Name.ToCamelCase()
            GetFunc = Reflection.getObjGetter propInfo
            WriteFunc = lazy getWriterFunc propInfo.PropertyType
            Default = Reflection.getDefaultValue propInfo.PropertyType }
  
      /// Try to determine a enumerable serialization function
  