Working on writing documentation for primitives, but mostly I have a
note to write, so I'm putting it in a commit

So documentation, I think what I'll do is have a field in every symbol
for a docstring (which makes sense), I'll have a field in functions to
hold the signature, which I'll provide for primives and can generate
eaisly enough for lisp functions.

For documentation in c I think I'll put the doc string in a special
comment, ala doxygen and the like. (it's what emacs does, but I'm not
sure how emacs extracts the docstring, I'll need to look at the code
more). Then I can just parse through files and extract the doc strings.
For lisp stuff it'll depend on what's being defined, for variables
(def,setq,defconst,etc) the docstring comes last after the initial value
i.e (defvar <symbol-name> [value] [docstring])
for the function-esq definations (which really just define variables but
are a shortcut/syntatic sugar) the docstring is the first thing after
the argument list, only if it is a string and not the only part of the
function body (examples)

(defun <name> (<arglist>) "documentation" (body))
normal function w/documentation
(defun <name> (<arglist>) (body))
normal function w/out documentation,
a special (kinda confunsing) case of the above is
(defun <name> (<arglist>) "documentation")
defines a function which always returns the string "documentation"
to provide documentation to this funtciton would be
(defun <name> (<arglist>) "actual documentation" "documentation")