anchor.diff:          | Some func ->
               (fun (w : TextWriter) x -> w.Write(func.Invoke(null, [| x |]))) |> Some
           | _ -> None
  -
   
       /// Build a PropertyWriterInfo object based on the
       /// specified PropertyInfo
  
positive.code:         array
          |> Array.iter (fun elem -> writeTag writer "item" ValueTypeSerializer.writeStringObject elem)
  
  
  /// Serialization logic
  module Serializer =
  
negative.code:           WriteFunc = getWriterFunc propInfo.PropertyType
            Default = Reflection.getDefaultValue propInfo.PropertyType }
  
      /// Try to determine a enumerable serialization function
      and getEnumerableWriter (t : Type) = fun () ->
          match TypeHelper.getTypeWithGenericType t typedefof<IEnumerable<_>> with
          | Some enumerableType ->
              let elemType = enumerableType.GetGenericArguments().[0]
              let elemWriter = getWriterFunc elemType
              Some <| ListSerializer.getGenericEnumerableWriter elemWriter elemType
          | _ ->
              if t.HasInterface typeof<IEnumerable> ||
                  t.IsAssignableFrom typeof<IEnumerable> then
                  Some <| ListSerializer.writeEnumerable getWriterFunc
              else None
  
      /// Get the PropertyWriterInfo array for the given type
      and getProperties (t : Type) =
  