def foo(str): v = str(1) . . .
EDIT: I agree that hygienic macros aren't the right way to solve this issue.
CL-USER> (defun foo (list) (list list)) FOO CL-USER> (foo 42) (42)
To further illustrate, in the above example the LIST symbol is imported from the package COMMON-LISP and has a function, plist etc. attached to it:
CL-USER> (symbol-package 'list) #<PACKAGE "COMMON-LISP"> CL-USER> (symbol-function 'list) #<FUNCTION LIST> CL-USER> (symbol-plist 'list) NIL
EDIT: I agree that hygienic macros aren't the right way to solve this issue.