anchor.diff:  let validateOrders c = seqValidator validateOrder c
       
   [<Test>]
  -let Validation() = 
  +let ValidateCustomer() = 
       let customer = 
           Customer(
               Surname = "foo",
  
positive.code: ﻿module FSharpx.Tests.Validation
  
  open System
  open FSharpx
  
negative.code:         <* validateAddress customer.Address
          <* validateOrders customer.Orders
      match result with
      | 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
  