anchor.diff:  type AssertException(msg) = inherit FuchuException(msg)
   type IgnoreException(msg) = inherit FuchuException(msg)
   
  +/// Marks a top-level test for scanning
   [<AttributeUsage(AttributeTargets.Method ||| AttributeTargets.Property ||| AttributeTargets.Field)>]
   type TestsAttribute() = 
       inherit Attribute()
  
positive.code:     static member List ([<ParamArray>] tests) =
          tests |> Seq.map Test.Case |> TestList
  
      static member List (name, setup: Func<_,_>, [<ParamArray>] tests) =
          let tests = tests |> Array.map (fun (name, test) -> Test.Case(name, setup.Invoke test))
          Test.List(name, tests)
  
      [<Extension>]
      static member Run tests = TestList tests |> run
  
      static member Fixture (setup: Func<_>, teardown: Action<_>) =
          if setup = null then nullArg "setup"
          if teardown = null then nullArg "teardown"
  
negative.code:             Type.GetType(t, true) |> Some
          with _ -> None
  
      let bracket setup teardown f () =
          let v = setup()
          try
              f v
          finally
              teardown v
  
      let tprintf fmt = 
          Printf.kprintf (fun s -> 
  