I thought I was supposed to be able to hide anything without a C: ... never mind
You can if you 'compile' the code to a VLX with a separate namespace, the function won't be available outside of the namespace (unless exported using vl-doc-export)
FYI, concerning the 'c:' prefix, it merely makes the function available at the command-line, but since 'c:test' is just another symbol, the following does work (though, its not good practice):
Command: (defun c:test ( i ) (* 2 i))
C:TEST
Command: (c:test 2)
4