And such behaviour should probably only happen when there are benefits, like (defun foo2 () (1+ (foo))), where it can get optimized, passing stuff around just adds an unnecessary typecheck.
And such behaviour should probably only happen when there are benefits, like (defun foo2 () (1+ (foo))), where it can get optimized, passing stuff around just adds an unnecessary typecheck.