     /// Invokes each registered observer.
     open func notify() {
         flatten()
+        guard !suppressNotifications else { return }
         observers.forEach { $0.handler?() }
     }
 }


    // MARK: Notify API

    /// Invokes each registered observer if `oldValue` is different than `newValue`.
    open func notifyIfNeeded<T: Equatable>(_ oldValue: T, newValue: T) {
        guard oldValue != newValue else { return }

    guard let lhs = lhs else {
        return false
    }

    return lhs.equals(rhs)
}
