anchor.diff:              | DerivedPatterns.Bool(true) -> () //the exnWhen condition is true
               | _ ->  
                   try
  -                    testFailed reducedExprs (sprintf "Got the expected exception, but the exception assertion failed:\n\nException Assertion:\n\n%s\n\nTest Expression:" (exnWhenReducedExprs |> List.map decompile |> String.concat "\n"))
  +                    testFailed reducedExprs (sprintf "The expected exception was raised, but the exception assertion failed:\n\nException Assertion:\n\n%s\n\nTest Expression:" (exnWhenReducedExprs |> List.map decompile |> String.concat "\n"))
                   with 
                   | e -> raise e //we catch and raise e here to hide stack traces for clean test framework output
   
           else //it's not the correct exception
               try
  -                testFailed reducedExprs (sprintf "Expected %s but got %s" typeof<'a>.Name (lastValueTy.Name))
  +                testFailed reducedExprs (expectedExnButWrongExnRaisedMsg typeof<'a>.Name (lastValueTy.Name))
               with 
               | e -> raise e
       | _ -> //it's not an exception
           try
  -            testFailed reducedExprs (sprintf "Expected %s but got nothing" typeof<'a>.Name)
  +            testFailed reducedExprs (expectedExnButNoExnRaisedMsg typeof<'a>.Name)
           with 
           | e -> raise e
       
  
positive.code:         let lastExpr = reducedExprs |> List.rev |> List.head
          reducedExprs, lastExpr
  
  open Internal
  
  //making inline (together with catch/raise) ensures stacktraces clean in test framework output
  
negative.code:         if typeof<'a>.IsAssignableFrom(lastValueTy) then () //it's the correct exception
          else //it's not the correct exception
              try
                  testFailed reducedExprs (expectedExnButWrongExnRaisedMsg typeof<'a>.Name (lastValueTy.Name))
              with 
              | e -> raise e
      | _ -> //it's not an exception
          try
              testFailed reducedExprs (expectedExnButNoExnRaisedMsg typeof<'a>.Name)
          with 
          | e -> raise e
  
  