I have been focusing on tightening up varjo recently.
I have made a number of bug fixes which is meaning I could
probably feel fairly comfortable writing some shaders in this now
(As long as they don't use samplers, this is my big hole at the
moment...its not hard to fix, just time consuming and boring!)

* Fixed bug where in-cars and uniforms could have the same name
* Fixed indenting FINALLY!
* renamed the gl-vertex formats needed for geometry and vertex
  shaders.
* changed the built in vars so they all now have the gl- prefix
* fixed bug with missing in-built vars
* made safe-gl-name stricter
* made compile-let-forms use safe-gl-name
* added the indent-ob function which creates a new code-ob with
  an indented to-block section
* tweaked end-line so it knows that if a code-ob's type is :none
  or :void that it doesnt need a semicolon
* editted 'for' loop to use indenting and line ending correctly
* editted 'if' to use indenting and line ending correctly
* editted 'let' to use line ending correctly
* editted 'while' to use line ending correctly
* editted 'make-function' to use indenting and line ending correctly
* fixed bug in 'make-function' casuing incorrect case of types
* fixed bug in vector and matrix contructing which caused it to
  not allow primitive types.
* fixed bug in labels in which it would completely overrule a
  varjo-function's definition instead of just the one it needed
  to.
* removed indenting from progn and spun it off into indent-ob
* tweaked write-output-string so that compiled code has less
  unnecessary white-space
* modfied flesh-out-args so that it generated the safe-gl-names
  for in-vars and uniforms
* tweak a couple of other funcs to do the same