Is there a way to leverage .assign(to:), but with the added capability of animating changes to the Published property?

Here’s what I’m currently doing:

I have several @Published properties being observed in my viewModels, and normally this is how I assign them:

mypPublisher.receive(on: DispatchQueue.main) 
.assign(to: &$myPublishedValue)  

This works just fine, however, I want to be able to wrap the assignment in a withAnimation, and normally the only way I know to do this is like this:

myPublisher.receive(on:DispatchQueue.main)
.sink { [weak self] value in      
    if let self {            
       withAnimation { 		
             self.myPublishedValue = value            
        }      
    }
 } 
.store(in: &subscriptions) 

I’m wondering whether there’s a better way to leverage .assign(to:) itself to also include animation. Potentially adding an extension to Publisher to include such method that is capable of handling assigning to the Publisher and animating it?

I’m hoping to do something as simple as this:

myPublisher.receive(on:DispatchQueue.main) 
.assignWithAnimation(to: &$myPublishedValue, animation: …) // where animation is an optional parameter.   

Any ideas or suggestions on how to possibly make this work?