If I get the function definition with
(setq wrapped-copy (symbol-function 'fn))
how can I make a copy such that I can redefine the same function with a wrapped version? like
(fset 'fn #'(lambda () (wrapped-copy)))
I tried with copy-seq
but I think it copies by reference, so the anon function looses the function definition in the wrapped copy