symbol-function
can return an actual function object for the
argument symbol, which would be displayed as its printed
representation (either a lambda form or compiled byte-code -- but
you could load the uncompiled version of the library to avoid the
latter).
More precisely, it returns the value of the symbol's function
cell. Besides a function object, other common values are:
- auto-load objects: C-hig
(elisp) Autoload Type
- symbols:
(elisp) Function Indirection
- keyboard macros:
(elisp) Keyboard Macros
(Strictly speaking, I believe a function cell can contain any value,
but some types are rather more expected than others.)