anchor.diff:  //demo
   context "Test Context"
   
  -
  -"Skipped test" &&! fun ctx ->
  -  ()
  +"Skipped test" &&! fun ctx -> ()
   
   "Todo test" &&& todo
   
  -[1..50]
  +[1..11]
   |> List.iter (fun i ->
     sprintf "Test %i" i &&& fun ctx ->
  -    ctx.printfn "A guid %A" (ng())
       ctx.printfn "I am test %i" i
       if i % 10 = 0 then failwith "mod error"
       ctx.printfn "A guid %A" (ng()))
  
positive.code: open System.Collections.Generic
  
  type actor<'t> = MailboxProcessor<'t>
  
  type Worker =
    | Run
  
negative.code:         match msg with
          | Reporter.TestStart(description, id) ->
            let message = sprintf "Test: %s" description
            dict.Add(id, [color.DarkCyan, message])
            return! loop passed failed skipped todo
          | Reporter.Print(message, id) ->
            dict.[id] <- (color.Black, message)::dict.[id] //prepend new message
            return! loop passed failed skipped todo
          | Reporter.Pass id ->
            printMessages id
            colorWriteReset color.Green "Passed"
            return! loop (passed + 1) failed skipped todo
          | Reporter.Fail(id, ex) ->
            printMessages id
            printError ex
            return! loop passed (failed + 1) skipped todo
          | Reporter.Skip id ->
            printMessages id
            colorWriteReset color.Yellow "Skipped"
            return! loop passed failed (skipped + 1) todo
          | Reporter.Todo id ->
            printMessages id
            colorWriteReset color.Yellow "Todo"
            return! loop passed failed skipped (todo + 1)
          | Reporter.RunOver (minutes, seconds) ->
              printfn ""
              printfn "%i minutes %i seconds to execute" minutes seconds
              colorWriteReset color.Green (sprintf "%i passed" passed)
              colorWriteReset color.Yellow (sprintf "%i skipped" skipped)
              colorWriteReset color.Yellow (sprintf "%i todo" todo)
              colorWriteReset color.Red (sprintf "%i failed" failed)
              return ()
        }
      loop 0 0 0 0)
  
  