anchor.diff:  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 (fun _ -> o)
  +    nameNotNull >>= positiveCost |> Choice.map (konst o)
   
   (*    validation {
           let! name = nonNull "Product name can't be null" o.ProductName
  
positive.code: open FSharpx.Choice
  open FSharpx.Validation
  open NUnit.Framework
  open Microsoft.FSharp.Core
  
  let validator pred error value =
  
negative.code:         (fun (a: Address) -> a.Line1 != null || a.Line2 == null) 
          "Line1 is empty but Line2 is not"
  
  let validateAddress (a: Address) = 
      returnM a
      <* nonNull "Post code can't be null" a.Postcode
  