    func withAnimation<Result>(_ animation: Animation? = .default, _ body: () throws -> Result) rethrows -> Result {
        let callContext = CallContext { action in
            SwiftUI.withAnimation(animation) {
                action()
            }
        }

        return try CallContext.$current.withValue(callContext) {
            try body()
        }
    }