anchor.diff:              then ok
               else failf "Expected %A but was %A" expected actual
   
  +    [<CompiledName("AssertTrue")>]
  +    let assertTrue x = assertEqual true x
  +
  +    [<CompiledName("AssertFalse")>]
  +    let assertFalse x = assertEqual false x
  +
  +    [<CompiledName("AssertThrows")>]
  +    let assertThrows ex f = 
  +        try
  +            f()
  +            ok
  +        with e -> assertEqual ex (e.GetType())
  +
       let flatten =
           let rec loop parentName testList =
               function
  
positive.code: [<AutoOpen>]
  module F =
  
      let withLabel lbl t = TestLabel (lbl, t)
  
      [<Extension>]
      let WithLabel = flip withLabel
  
      type TestResult = 
          | Passed
  
negative.code:         let summary = sumTestResults results
          Console.WriteLine summary
  
  [<Extension>]
  type Test with
      static member NewCase (f: Func<Choice<unit, string>>) = 
          TestCase f.Invoke
  
      static member NewList ([<ParamArray>] tests) = 
          Array.toList tests |> TestList
  
      static member NewList ([<ParamArray>] tests) =
          tests |> Array.map Test.NewCase |> Test.NewList
  
      [<Extension>]
      static member WithLabel (test, label) = TestLabel (label, test)
  
      [<Extension>]
      static member Add (test, add) = TestList [test; TestCase add]
  
      [<Extension>]
      static member Add (test, add) = TestList [test; add]
  