Eval in a function

yes i'm agree there is too much problem with this solution.

Initially i wanted to make overloading with a hash table storing the overloaded procedure. I already made it in Python with decorators many month ago, now there exist 'multimethod' in Python which combined with 'type annotation' works very well. Scheme and Python are not typed language, i mean you do not need to declare the type of a variable. But in Python you can know the type of a variable by asking it to the object, not in scheme, you have to test each type again the variable, for this reason, overloading is rarely proposed in scheme. And for this reason i had chosen a recursive overload because even with an hash table you have to iterate (like a recursion) for finding the good types before using a direct hash table to retrieve the procedure that match the types of args.

But i did not think about the problem of redefining a procedure, example + , each time you overload it creating a new procedure over the old one and keeping the old somewhere to recall it in the "recursives" (not really,the procedure are all different in fact) calls.
One advantage of chained functions calls binded to the operator (+ for example) was to avoid the use of a global variable hash table.
I will wrote a scheme overload solution with hash tables (using an initial rename) i think the solution should be more relocatable,used from anyplace in code ,i hope ,not sure,will see soon.
I do not understand why scheme forbide redefinitions (not at REPL)

My actual solution is working indeed :

(define (add-pair p1 p2) (cons (+ (car p1) (car p2)) (+ (cdr p1) (cdr p2))))
(overload + add-pair (pair? pair?) 'operator)


(define (add-vect-vect v1 v2) (map + v1 v2))
(overload + add-vect-vect (list? list?) 'operator)


(define (mult-num-vect k v) (map (λ (x) (* k x)) v))
(overload * mult-num-vect (number? list?) 'operator)

{t <+ {3 * '(1 2 3) + '(4 5 6) + '(7 8 9)}}
(14 19 24)

t
'(14 19 24)

(+ (cons 1 2) (cons 3 4))
'(4 . 6)


(+ 1 2)
3

{3 * '(1 2 3) + '(4 5 6) + '(7 8 9)}
(14 19 24)

indeed next implementation will be with hash table.