On the subject of two star programming...

```diff
diff --git a/src/unix/fsevents.c b/src/unix/fsevents.c
index a42cef4..971da64 100644
--- a/src/unix/fsevents.c
+++ b/src/unix/fsevents.c
@@ -92,7 +92,7 @@ struct uv__cf_loop_signal_s {
 struct uv__fsevents_event_s {
   int events;
   int status;
-  void* next;
+  struct uv__fsevents_event_s* next;
   char path[1];
 };
 
@@ -220,8 +220,8 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
   uv_loop_t* loop;
   uv__cf_loop_state_t* state;
   uv__fsevents_event_t* event;
+  uv__fsevents_event_t** next;
   uv__fsevents_event_t* head;
-  uv__fsevents_event_t* tail;
 
   loop = info;
   state = loop->cf_state;
@@ -232,8 +232,7 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
   uv_mutex_lock(&state->fsevent_mutex);
   QUEUE_FOREACH(q, &state->fsevent_handles) {
     handle = QUEUE_DATA(q, uv_fs_event_t, cf_member);
-    head = NULL;
-    tail = NULL;
+    next = &head;
 
     /* Process and filter out events */
     for (i = 0; i < numEvents; i++) {
@@ -288,14 +287,11 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
       else
         event->events = UV_RENAME;
 
-      if (tail == NULL)
-        head = event;
-      else
-        tail->next = event;
-      tail = event;
+      *next = event;
+      next = &(*next)->next;
     }
 
-    if (head != NULL)
+    if (*next != head)
       uv__fsevents_push_event(handle, head);
   }
   uv_mutex_unlock(&state->fsevent_mutex);
```

I didn't test it deeply but that should work, right?