We should not, in software engineering, try to figure out how to automate the ruinous process of burying each other in boilerplate code and existing patterns. If there is a kernel of commonality among APIs, we should build a clean abstraction.
In other words, sure your IDE or some chatbot can generate a deep copy for a compiler to consume. But why bother? We all know what a deep copy is. Formally. The language should include a construct for the compiler to generate one.