Add flet1, flet, update reference
diff --git a/src/lisp/lisp.c b/src/lisp/lisp.c
index f1a02ed..9aac65d 100644
--- a/src/lisp/lisp.c
+++ b/src/lisp/lisp.c
@@ -716,13 +716,13 @@
 
 value_t merge2(value_t front, value_t back)
 {
-	if (!listp(front) || !listp(back))
-		return nil;
+	if (!listp(front) && listp(back))
+		return cons(front, back);
 
-	if (nilp(front))
-		return back;
-	else
-		*nilptr(front) = back;
+	if (listp(front) && !listp(back))
+		back = cons(back, nil);
+
+	*nilptr(front) = back;
 
 	return front;
 }