anchor.diff:              |> Seq.head
               |> fun x -> Double.Parse(s = x.Value)
             FormDigest.create value timeout (created ())
  -        with ex -> log.print LogLevel.Error ex; raise ex
  +        with ex -> log.print error ex; raise ex
   
         let formDigest o365 (host:Uri) (digest:FormDigest) items log = 
           match digest.soonExpire items with
  
positive.code:     let o365 = Office365.getCookieContainer host usr pwd, Office365.userAgent
      let log = { Log.level = loglvl }
  
      log.print LogLevel.Info "SharePoint Online copy (SPOcopy) - Started"
  
      copyHelper local local host urlRoot o365
        (SPO.CRUD.formDigestHelper o365 host log) SPOitems.Folders log
  
      log.print LogLevel.Info "SharePoint Online copy (SPOcopy) - Finished"
  
negative.code:     // Error   = (1 <<< 2)
      // Verbose = (1 <<< 0) ||| (1 <<< 1) ||| (1 <<< 2)
      type LogLevel = 
        | Info    = 5 // Indicates logs for an informational message and errors
        | Warning = 6 // Indicates logs for a warning and errors
        | Error   = 4 // Indicates logs for an error.
        | Verbose = 7 // Indicates logs at all levels.
  
      let info    = LogLevel.Info
      let warning = LogLevel.Warning
      let error   = LogLevel.Error
      let verbose = LogLevel.Verbose
  
      let ts () = DateTime.Now.ToString("o") // ISO-8601
      let cw (s:string) = Console.WriteLine(s)
  