The ability to document variables is critical for many projects such as libfive where the variables is used to declares functional computer aided design structure and other projects where variables influence the workflow.

Thus proposing to change the 'define' behavior for variables to implement:

    (define variable default-value docstring)
                                                   ^^^^^^

Where docstring is optional and in case it's provided to call for example:

   (set-procedure-property! variable 'documentation docstring)

So that it can be called from (help variable):

    scheme@(guile-user)> (help variable)
    `variable' is a procedure in the (guile) module.
    
    expanded docstring here

This way it will also make it possible to easily implement development environment that shows the documentation on cursor hover.

---

Credit: Inspired by 'defvar' from elisp:

   (defvar variable default-value docstring)

-- Jacob "Kreyren" Hrbek