anchor.diff:      let tprintf fmt = Printf.kprintf Trace.Write fmt
   
       open System.Text.RegularExpressions
  -    let exnToString =
  -        let rx = lazy Regex(" at (.*) in (.*):line (\d+)", RegexOptions.Compiled ||| RegexOptions.Multiline)
  -        fun (e: Exception) -> 
  -            rx.Value.Replace(e.ToString(), "$2($3,1): $1")
  -
  +    let rx = lazy Regex(" at (.*) in (.*):line (\d+)", RegexOptions.Compiled ||| RegexOptions.Multiline)
  +    let stackTraceToString s = rx.Value.Replace(s, "$2($3,1): $1")
  +    let exnToString (e: Exception) = stackTraceToString (e.ToString())
   
       type MemberInfo with
           member m.HasAttributePred (pred: Type -> bool) =
  
positive.code:                     w.Stop()
                      match e with
                      | ExceptionInList failExceptions ->
                          onFailed name e.Message w.Elapsed
                          { Name = name
                            Result = Failed e.Message
                            Time = w.Elapsed }
                      | ExceptionInList ignoreExceptions ->
                          onIgnored name e.Message
  
negative.code:             let execOne (name: string, test) = 
                  beforeRun name
                  let w = System.Diagnostics.Stopwatch.StartNew()
                  try
                      test()
                      w.Stop()
                      onPassed name w.Elapsed
  