anchor.diff:      {absolute=1e-12; relative=1e-9}
   
   namespace Expecto.CSharp
  +open System
  +open System.Threading.Tasks
   open System.Runtime.CompilerServices
  +open Expecto
  +open Expecto.Impl
  +
  +// C# is weak and can't really handle Async or partial application
  +type ITestPrinter =
  +  abstract member BeforeRun   : Test -> Task
  +  abstract member BeforeEach  : string -> Task
  +  abstract member Info        : string -> Task
  +  abstract member Passed      : string * TimeSpan -> Task
  +  abstract member Ignored     : string * string -> Task
  +  abstract member Failed      : string * string * TimeSpan -> Task
  +  abstract member Exn         : string * exn * TimeSpan -> Task
  +  abstract member Summary     : ExpectoConfig * TestRunSummary -> Task
  +
   
   [<AutoOpen; Extension>]
   module Runner =
     open Expecto
  -  open Expecto.Impl
     open System.Collections.Generic
  -  open System.Threading.Tasks
  +
  +  let private printerFromInterface (i : ITestPrinter) =
  +      { beforeRun   = i.BeforeRun >> Async.AwaitTask
  +        beforeEach  = i.BeforeEach >> Async.AwaitTask
  +        passed      = fun n d -> i.Passed(n, d) |> Async.AwaitTask
  +        info        = i.Info >> Async.AwaitTask
  +        ignored     = fun n m -> i.Ignored(n, m) |> Async.AwaitTask
  +        failed      = fun n m d -> i.Failed(n, m, d) |> Async.AwaitTask
  +        exn         = fun n e d -> i.Exn(n, e, d) |> Async.AwaitTask
  +        summary     = fun c s -> i.Summary(c, s) |> Async.AwaitTask
  +      }
   
     type Async with
       static member AwaitTask(t : Task) =
  
positive.code:   [<CompiledName("FocusedTestCase")>]
    let FocusedTestCaseFT(name, test: System.Func<Task>) = ftestCaseAsync name (async { do! Async.AwaitTask (test.Invoke()) })
    let DefaultConfig = defaultConfig
  
negative.code: open System.Diagnostics
  open System.Threading
  open System.Threading.Tasks
  
  // When exposing Extension Methods, you should declare an assembly-level attribute (in addition to class and method)
  [<assembly:Extension>]
  do
    ()
  
  
  // TODO: move to internal
  type SourceLocation =
  