Add load(), load_library(), lisp std
diff --git a/lib/lisp/std/std.lisp b/lib/lisp/std/std.lisp
new file mode 100644
index 0000000..096b885
--- /dev/null
+++ b/lib/lisp/std/std.lisp
@@ -0,0 +1,26 @@
+;;;; std.lisp -- Lisp standard library
+
+(defun caar (val)
+  (car (car val)))
+
+(defun cadr (val)
+  (car (cdr val)))
+ 
+(defun caddr (val)
+  (car (cdr (cdr val))))
+
+(defun cadar (val)
+  (car (cdr (car val))))
+
+(defun caddar (val)
+  (car (cdr (cdr (car val)))))
+
+;; Instead of a function this is a macro for a slight performance increase
+(defmacro not (val)
+  (nilp val))
+
+;; TODO: make tail recursive (for this `flet` would be nice)
+(defun length (list)
+  (if (nilp list)
+    0
+    (+ 1 (length (cdr list)))))