anchor.diff:  
   open MethodInfo
   
  +type internal PropertyInterceptor() =
  +    let data = Dictionary()
  +
  +    interface IInterceptor with
  +        member this.Intercept invocation = 
  +            match invocation.Method with 
  +                | Abstract & PropertySetter propertyName -> 
  +                    data.[propertyName] <- invocation.Arguments.[0]
  +
  +                | Abstract & PropertyGetter propertyName ->
  +                    match data.TryGetValue propertyName with 
  +                    | true, value -> invocation.ReturnValue <- value 
  +                    | false, _ -> 
  +                        let returnType = invocation.Method.ReturnType
  +                        if returnType.IsValueType then 
  +                            invocation.ReturnValue <- Activator.CreateInstance returnType
  +
  +                | _ -> invocation.Proceed()
  +
   [<AbstractClass>]
   type Model() = 
   
  
positive.code:     }
  
      static member Create<'T when 'T :> Model and 'T : not struct>()  : 'T = 
          let interceptors : IInterceptor[] = [| notifyPropertyChanged; AbstractProperties() |]
          proxyFactory.CreateClassProxy interceptors    
  
      interface INotifyPropertyChanged with
  
negative.code:         errors.[propertyName] <- messages
          errorsChanged.Trigger(this, DataErrorsChangedEventArgs propertyName)
  
  [<RequireQualifiedAccess>]
  module Mvc = 
  
  