Add lexical closures
diff --git a/src/lisp/gc.c b/src/lisp/gc.c
index 16ec471..8820ef5 100644
--- a/src/lisp/gc.c
+++ b/src/lisp/gc.c
@@ -39,6 +39,16 @@
 				_mark(cons->cons.cdr, marked);
 				break;
 			}
+			case CLOSURE_TAG: {
+				struct closure_alloc *closure = (void *)alloc;
+
+				for (int i = 0; i < closure->closure.num_captured; i++)
+				{
+					_mark(closure->closure.data[i], marked);
+				}
+
+				break;
+			}
 			}
 		}
 	}