Take for example "-keep". I do 'C-h v -keep RET' and get: -keep is void as a variable. Not documented as a variable. Now I eval (require 'dash), do 'C-h v -keep RET' again and get: -keep is void as a variable. Not documented as a variable. whereas 'C-h f -keep' returns: -keep is a native-comp-function in ‘dash.el’. (-keep FN LIST) Return a new list of the non-nil results of applying FN to each item in LIST. Like ‘-filter’, but returns the non-nil results of FN instead of the corresponding elements of LIST. Its anaphoric counterpart is ‘--keep’. In summary, I see a void variable in the list of completions where the function is defined. Also, when I do 'emacs -Q' followed directly with 'C-h f TAB', I see this: