anchor.diff:              | TypeCode.UInt64 -> Some writeUInt64
               | _ -> None
   
  +/// Serialization logic for list and collection types
   module ListSerializer =
   
       open System
  
positive.code:         | Some func ->
              (fun (w : TextWriter) x -> w.Write(func.Invoke(null, [| x |]))) |> Some
          | _ -> None
  
  
      /// Build a PropertyWriterInfo object based on the
      /// specified PropertyInfo
  
negative.code:         array
          |> Array.iter (fun elem -> writeTag writer "item" ValueTypeSerializer.writeStringObject elem)
  
      /// Writer function for untyped IEnumerables
      let writeEnumerable determineFunc (writer : TextWriter) (value : obj) =
          let collection : IEnumerable = unbox value
          let write func elem =
              let f =
                  match func with
                  | None ->
                      let writeFunc = determineFunc (elem.GetType())
                      Some <| writeTag writer "item" writeFunc
                  | _ -> func
              f.Value elem
              f
          collection
          |> Seq.cast
          |> Seq.fold write None
          |> ignore
  
      /// Writer function for generic IEnumerables
      let writeGenericEnumerable<'a> (writeFunc : WriterFunc) (writer : TextWriter) (value : obj) =
          let collection : IEnumerable<'a> = unbox value
          collection
          |> Seq.iter (writeTag writer "item" writeFunc)
  
      /// Wrapper function to get the generic IEnumerable writer
      let getGenericEnumerableWriter elemWriter t =
          // TODO: this does not look sane at all
          let writer = Type.GetType("SharpXml.ListSerializer").GetMethod("writeGenericEnumerable")
          let mtd = writer.MakeGenericMethod([| t |])
          fun (w : TextWriter) x -> mtd.Invoke(null, [| elemWriter; w; x |]) |> ignore
  
  /// Serialization logic
  module Serializer =
  