anchor.diff:      | true, x -> Some (box x)
       | false, _ -> None
   
  -let parseDateTime (fmt: string) =
  +let defaultDateFormat = "yyyy-MM-dd-HH.mm.ss"
  +
  +let parseDateTime (fmt: string option) =
  +    let fmt = defaultArg fmt defaultDateFormat
       let rT = System.Globalization.DateTimeStyles.RoundtripKind
       opt <| fun x -> DateTime.TryParseExact(x, fmt, System.Globalization.CultureInfo.InvariantCulture, rT)
   
  -let writeDateTime (fmt: string) =
  +let writeDateTime (fmt: string option) =
  +    let fmt = defaultArg fmt defaultDateFormat
       fun (x: obj) -> (x :?> DateTime).ToString(fmt)
   
   /// Dict<type, (encode * decode)>
  
positive.code:     let ft = f.Type
      let writePrimitiveField t =
          if t = typeof<DateTime> then
              match getDateTimeFormat f with
              | None -> writePrimitiveType t
              | Some fmt -> writeDateTime fmt
          else writePrimitiveType t
      if isPrimitive ft then
          Some (writePrimitiveField ft >> Some)
  
negative.code:     let ft = f.Type
      let parsePrimitiveField t =
          if t = typeof<DateTime> then
              parseDateTime (getDateTimeFormat f)
          else
              parsePrimitiveType t
      if isPrimitive ft then
  