anchor.diff:  
       let obs = PropertyChangedObserver(dynamicVm)    
   
  -    let errors() =
  +    let errors () =
           let inde = dynamicVm :> INotifyDataErrorInfo
           inde.GetErrors("Full")
           |> Seq.cast<string>
  
positive.code:     Assert.IsTrue(dynamicVm.IsValid)
      Assert.AreEqual(1, obs.["IsValid"])        
  
  [<Test>]
  let ``BindingTarget\Bind\watch with validator sets error state`` () =
      let first = Mutable.create ""
      let last = Mutable.create ""
  
      let fullNameValidation (value : string) = 
          match System.String.IsNullOrWhiteSpace(value) with
          | true -> Some "Value must contain at least a first and last name"
          | false ->
              let words = value.Split([|' '|], System.StringSplitOptions.RemoveEmptyEntries)
              if words.Length >= 2 then
                  None
              else
                  Some "Value must contain at least a first and last name"
  
      let full = 
          View.map2 (fun f l -> f + " " + l) first last
          |> View.validate (notNullOrWhitespace >> (custom fullNameValidation))
  
negative.code:     let first = Mutable.create ""
      let last = Mutable.create ""
  
      let full = 
          View.map2 (fun f l -> f + " " + l) first last
          |> View.validate (notNullOrWhitespace >> fixErrors >> (custom fullNameValidation))
  