public static bool Set <T>(this INotifierObject n,
                            T value,
                            [CallerMemberName] string propertyName = null)
 => n.Notifier.Set(n, value, propertyName, null);
 public static bool Set <T>(this INotifierObject n,
                            T value,
                            Action <T, T> postUpdateAction,
                            [CallerMemberName] string propertyName = null)
 => n.Notifier.Set(n, value, propertyName, postUpdateAction);
 public static T Get <T>(this INotifierObject n,
                         [CallerMemberName] string propertyName = null)
 => n.Notifier.Get <T>(n, old => default(T), propertyName);
 public static T Get <T>(this INotifierObject n, Func <T, T> getter,
                         [CallerMemberName] string propertyName = null)
 => n.Notifier.Get <T>(n, getter, propertyName);
 public static Notifier GetNotifier(this INotifierObject obj)
 => obj.Notifier;