anchor.diff:          <* validateOrders customer.Orders
       match result with
       | Choice1Of2 c -> failwithf "Valid customer: %A" c
  -    | Choice2Of2 errors -> printfn "Invalid customer. Errors:\n%A" errors
  +    | Choice2Of2 errors -> 
  +        printfn "Invalid customer. Errors:\n%A" errors
  +        errors.Length |> should equal 3
  +        errors |> should contain "Cost for product 'Bar' can't be negative"
  +        errors |> should contain "Product name can't be null"
  +        errors |> should contain "Surname can't be foo"
   
   [<Test>]
   let ``using ap``() =
     let customer = Customer()
     let result = 
  -    returnM (fun _ _ -> customer)
  +    returnM (konst2 customer)
       |> Validation.ap (nonNull "Surname can't be null" customer.Surname)
       |> Validation.ap (notEqual "foo" "Surname can't be foo" customer.Surname)
     match result with
     | Choice1Of2 c -> failwithf "Valid customer: %A" c
  -  | Choice2Of2 errors -> printfn "Invalid customer. Errors:\n%A" errors
  +  | Choice2Of2 errors -> 
  +      printfn "Invalid customer. Errors:\n%A" errors
  +      errors.Length |> should equal 1
  +      errors |> should contain "Surname can't be null"
   
   [<Test>]
   let ``validation with monoid``() =
  
positive.code: open FSharpx.Choice
  open FSharpx.Validation
  open NUnit.Framework
  open Microsoft.FSharp.Core
  
  let validator pred error value =
  
negative.code: let validateOrder (o: Order) =
      let nameNotNull = nonNull "Product name can't be null" o.ProductName
      let positiveCost n = greaterThan (0m).n (sprintf "Cost for product '%s' can't be negative" n) o.Cost
      nameNotNull >>= positiveCost |> Choice.map (konst o)
  
  (*    validation {
          let! name = nonNull "Product name can't be null" o.ProductName
  