Necesito una forma de enumerar los nombres (sin el cuerpo / contenido / valor) de alias, funciones, variables, matrices en zsh. Óptimamente debería comportarse así compgen:
compgen -a # will list all the aliases you could run.
compgen -A function # will list all the functions you could run.
compgen -A variable # will list all the variables defined.
Antecedentes
Necesito esto para desarrollar env_parallel.zsh: https://www.gnu.org/software/parallel/env_parallel.html

${(kM)parameters:#[[:alpha:]_][[:alnum:]_]#}(conextendedglob) solo para los parámetros que son variables.for k in ${(koM)parameters:#[[:alpha:]][[:alnum:]_]#}; do; [[ ${(M)parameters[$k]:#association*} ]] || continue; print -- "$k"; done(extendedglobdebe establecerse) debería proporcionarle una breve lista de variables para usar según los datos que esté buscando. El cambio[[:alpha:]]a[[:alpha:]_]incluirá matrices asociativas (o variables) que comienzan con un guión bajo. Cambiarassociation*ascalar*oarray*ointeger*o*export*le dará los resultados de esos tipos. Las "variables y matrices" requieren un poco más de trabajo.