Macros like defun (or defmacro itself) have an optional docstring argument, but since they are macros and not functions, docstring isn't evaluated, but is taken as-is.
I need the docstring to be evaluated so that instead of something like this -
"does a, then b, then c" ; b is hardcoded
I can put something like this instead -
(concat "does a, then " (getenv "<some-shell-variable>") " , then c") ; b isn't hardcoded
Is it possible to do this without having to tweak the definitions of defun and defmacro?
By tweak, I don't mean overwriting the definitions, but writing new macros like prefix-defun and prefix-defmacro based on the existing definitions of defun and demacro, except, the docstring is evaluated by replacing all instances of docstring with (eval docstring).