anchor.diff:          elif t = typeof<Type> then Some ValueTypeSerializer.writeType
           else None
   
  -    let rec writeEnumerable (writer : TextWriter) (value : obj) =
  +    /// Build a PropertyWriterInfo object based on the
  +    /// specified PropertyInfo
  +    let rec buildPropertyWriterInfo (propInfo : PropertyInfo) =
  +        { Info = propInfo
  +          OriginalName = propInfo.Name
  +          ClsName = propInfo.Name.ToCamelCase()
  +          GetFunc = fun o -> o // TODO
  +          WriteFunc = determineWriter propInfo.PropertyType
  +          Default = Reflection.getDefaultValue propInfo.PropertyType }
  +
  +    /// Writer function for IEnumerable
  +    and writeEnumerable (writer : TextWriter) (value : obj) =
           let collection : IEnumerable = unbox value
           let write func elem =
               let f = match func with | None -> determineWriter (elem.GetType()) | _ -> func
  
positive.code:             match determineWriter t with
              | Some s -> Atom.updateAtomDict serializerCache t s
              | _ -> invalidOp "No serializer available for type %s" t.FullName
  
negative.code:         |> Seq.cast
          |> Seq.fold write None
          |> ignore
  
      /// Try to determine a enumerable serialization function
      and getEnumerableWriter (t : Type) =
  