anchor.diff:          <* validateAddress customer.Address
           <* validateOrders customer.Orders
       match result with
  -    | Choice1Of2 c -> printfn "Valid customer: %A" c
  -    | Choice2Of2 errors -> printfn "Invalid customer. Errors:\n%A" errors+    | Choice1Of2 c -> failwith "Valid customer: %A" c
  +    | Choice2Of2 errors -> printfn "Invalid customer. Errors:\n%A" errors
  +
  +[<Test>]
  +let ``using ap``() =
  +  let customer = Customer()
  +  let result = 
  +    puree (fun _ _ -> 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 -> failwith "Valid customer: %A" c
  +  | Choice2Of2 errors -> printfn "Invalid customer. Errors:\n%A" errors
  
positive.code: ﻿module FSharpx.Tests.Validation
  
  open System
  open FSharpx
  
negative.code: let validateOrders c = seqValidator validateOrder c
      
  [<Test>]
  let ValidateCustomer() = 
      let customer = 
          Customer(
              Surname = "foo",
  