anchor.diff:              Some write
           | None -> None
   
  +/// Various helper functions for XML attribute
  +/// serialization
   module internal AttributeSerializer =
   
       open System
  
positive.code:     open Extensions
      open Utils
  
      let nullStrFunc (func : obj -> string) =
          fun (v : obj) -> if v <> null then func v else null
  
      let nullableStrFunc<'a when 'a: (new: unit -> 'a)
                              and 'a :> ValueType
                              and 'a: struct> (func : 'a -> string) =
          fun (v : obj) ->
              let value : Nullable<'a> = unbox v
              if value.HasValue then func value.Value else null
  
      let writeGuid (v : Guid) =
          v.ToString("N")
  
negative.code:     and determineWriterInfo (ps, attrs) (pi : PropertyInfo) =
          match getAttribute<XmlAttributeAttribute> pi with
          | Some attr ->
              let t = pi.PropertyType
              let writer =
                  match XmlConfig.Instance.TryGetSerializer t with
                  | Some serializer -> serializer
                  | None ->
                      match AttributeSerializer.getValueWriter t with
                      | Some writer -> writer
                      | None -> SerializerFunc(fun v -> v.ToString())
              let key = if notWhite attr.Name then attr.Name else pi.Name
              let getter = ReflectionHelpers.getObjGetter pi
              let info =
                  { GetFunc = getter;
                    Key = key;
                    ToStr = writer }
              ps, info :: attrs 
          | None ->
              let info = buildPropertyWriterInfo pi
  