         change _: [NSKeyValueChangeKey: Any]?,
         context _: UnsafeMutableRawPointer?
     ) {
-        attempt { try update() }
+        attempt(update)
     }
 
     @objc private func contentSizeChanged() {

    private func inferContentSize() throws -> CGSize {
        // Check for explicit size
        if expressions["contentSize"] != nil, !_evaluating.contains("contentSize") {
            return attempt { try value(forSymbol: "contentSize") as? CGSize ?? .zero } ?? .zero
        }
        // Try best fit for subviews
        var size = CGSize.zero

                        }
                        self._evaluating.append(symbol)
                        defer {
                            if self._evaluating.last == symbol {
                                self._evaluating.removeLast()
                            } else {
                                assertionFailure("symbol: `\(symbol)`, evaluating; `\(self._evaluating)`")
                            }
                        }
                        let value = try SymbolError.wrap(evaluate, for: symbol)
                        cachedValue = value
