anchor.diff:              lock locker (fun () -> printFailed name error)
           let printException name ex =
               lock locker (fun () -> printException name ex)
  -        let results = flattenEval ignore printPassed printFailed printException pmap tests
  +        flattenEval ignore printPassed printFailed printException pmap
  +
  +    let runEval eval tests = 
  +        let results = eval tests
           let summary = sumTestResults results
           Console.WriteLine summary
           testResultCountsToErrorLevel summary
  +
  +    [<Extension>]
  +    [<CompiledName("Run")>]
  +    let run tests = runEval flattenEvalSeq tests
  +
  +    [<Extension>]
  +    [<CompiledName("RunParallel")>]
  +    let runParallel tests = runEval flattenEvalPar tests
   
   open System.Reflection
   
  
positive.code:             | TestList tests -> List.collect (loop parentName testList) tests
          loop "" []
  
      let failExceptions = [ 
          "NUnit.Framework.AssertionException"
          "Gallio.Framework.Assertions.AssertionFailureException"
          "Xunit.Sdk.AssertException"
      ]
      let eval beforeRun onPassed onFailed onException map =
          let execOne (name: string, test) = 
              beforeRun name
              try
                  test()
                  onPassed name
                  name, Passed
              with e ->
                  if List.exists ((=) (e.GetType().FullName)) failExceptions
                      then 
                          onFailed name e.Message
                          name, Failed e.Message
                      else
                          onException name e
                          name, Exception e
          map execOne
  
      let flattenEval beforeRun onPassed onFailed onException map tests =
          flatten tests |> eval beforeRun onPassed onFailed onException map
  
negative.code:     let printFailed = printfn "%s: Failed: %s"
      let printException = printfn "%s: Exception: %A"
  
      let flattenEvalSeq = flattenEval ignore printPassed printFailed printException Seq.map
  
      let pmap (f: _ -> _) (s: _ seq) = s.AsParallel().Select f
  
      let flattenEvalPar =
          let locker = obj()
          let printPassed name = 
              lock locker (fun () -> printPassed name)
  