anchor.diff:      |> should equal 1
   
   [<Test>]
  -[<ExpectedException(typeof<System.Exception>, ExpectedMessage = "check")>]
  -let ``{check p x} fails if the predicate {p} yields {false} when applied to the value {x}``() =
  -
  -    check ((=) 1) 2
  -    |> ignore
  +let ``{check p x} returns choice exception if the predicate {p} yields {false} when applied to the value {x}``() =
  +
  +    let x = check ((=) 1) 2
  +    // TODO: Make this a NUnit custom constraint
  +    match x with
  +    | Choice1Of2 v -> Assert.Fail ()
  +    | Choice2Of2 e -> Assert.AreEqual (e.Message, "check")
   
   (* funpow tests *)
   
  
positive.code:     |> should equal ([1; 2; 3], [4; 5])
  
  [<Test>]
  [<ExpectedException(typeof<System.Exception>, ExpectedMessage = "chop_list")>]
  let ``{chop_list i [x1;_;xn]} fails with if {i} is greater than the length of the list``() =
  
      chop_list 4 [1;2;3] 
      |> ignore
  
  [<Test>]
  [<ExpectedException(typeof<System.Exception>, ExpectedMessage = "chop_list")>]
  let ``{chop_list i [x1;_;xn]} fails with if {i} is negative``() =
  
      chop_list -1 [1;2;3] 
  
negative.code:     let valueAfterModification = apply g 1  // 3
  
      (valueBeforeModification,valueAfterModification)
      |> should equal (Some(2),Some(3))
  
  (* (|=>) tests *)
  
  