anchor.diff:  // TODO: 
   module internal ConsoleLogger = 
     type private cc = ConsoleColor
  +  
  +  type Agent = MailboxProcessor<LogLevel * string>
   
  -  type Agent = MailboxProcessor<LogLevel * string>
  -  
     type ConsoleLogger(logLevel : LogLevel) = 
       let threadSafe = ref String.Empty
       let level = logLevel
  
positive.code:         let pre = ts + " - " + level''.ToString() + ": "
          Console.ForegroundColor <- fc
          Console.BackgroundColor <- bc
  //        let msg = sprintf "%s" (pre + str)
          match level with
          | LogLevel.Warning | LogLevel.Error -> eprintfn "%s" (pre + str)
          | _ -> printfn "%s" (pre + str)
  
negative.code:       | LogLevel.Debug -> prettyPrint cc.DarkYellow obc LogLevel.Debug str
        | _ -> ()
  
      let agent() = 
        Agent.Start(fun inbox -> 
          let rec loop = 
            async { 
              let! (logLevel, msg) = inbox.Receive()
              logger logLevel msg
              return! loop
            }
          loop)
  
      // Reducer (one single agent). Side effects thread-safe
      let reducer = agent()
      
      member t.WriteLine(logLevel, str) = 
        match (level.HasFlag logLevel) with
  