To be honest I can't remember the changes. But look at this:

(defshader :!test! ((pos :vec3) (diffuse-col :vec4)
			   (nomal :vec3) &uniform
			   :dir-to-light :vec3
			   :light-intensity :vec4
			   :model-to-cam :mat4
			   :normal-model-to-cam :mat3
			   :camera-to-clip :mat4
			   :ambient-intensity :float)
	 (out position (* camera-to-clip (* model-to-cam
					     (vec4 pos 1.0))))
	 (out interp-col
	      (let ((norm-cam-space
		      (normalize (* normal-model-to-cam normal))))
		(* light-intensity diffuse-col
		   (+ (clamp (dot norm-cam-space dir-to-light)
			     0.0 1.0)
		      (* ambient-intensity diffuse-col))))
	      :smooth))

          --------------------BECOMES--------------------

#version 330

layout(location=0) in vec3 POS
layout(location=1) in vec4 DIFFUSE-COL
layout(location=2) in vec3 NOMAL

uniform vec3 DIR-TO-LIGHT
uniform vec4 LIGHT-INTENSITY
uniform mat4 MODEL-TO-CAM
uniform mat3 NORMAL-MODEL-TO-CAM
uniform mat4 CAMERA-TO-CLIP
uniform float AMBIENT-INTENSITY

out vec4 position;
smooth out vec4 interp_col;

void main() {
    position = (CAMERA-TO-CLIP * (MODEL-TO-CAM * vec4(POS, 1.0)));
    vec3 _norm_cam_space_7 = normalize((NORMAL-MODEL-TO-CAM * gl_Normal));
    interp_col = (LIGHT-INTENSITY * (DIFFUSE-COL * (clamp(dot(_norm_cam_space_7, DIR-TO-LIGHT), 0.0, 1.0) + (AMBIENT-INTENSITY * DIFFUSE-COL))));
}

Not bad!...I can see a few errors up there, currently it doesn't
check for clashes between in-vars and built in vars but that can be
fixed pretty easily. I guess the next big job (appart from adding
all the sampler functions) is to fix the awful indenting!

Also I should start writing macros to wrap common lisp functionality