+#define evidle_set(ev) /* nop, yes, this is a serious in-joke */
+#define evprepare_set(ev) /* nop, yes, this is a serious in-joke */
+#define evcheck_set(ev) /* nop, yes, this is a serious in-joke */
+#define evchild_set(ev,pid_) do { (ev)->pid = (pid_); } while (0)
+
+#define evio_init(ev,cb,fd,events) do { evw_init ((ev), (cb)); evio_set ((ev),(fd),(events)); } while (0)
+#define evtimer_init(ev,cb,after,repeat) do { evw_init ((ev), (cb)); evtimer_set ((ev),(after),(repeat)); } while (0)
+#define evperiodic_init(ev,cb,at,interval) do { evw_init ((ev), (cb)); evperiodic_set ((ev),(at),(interval)); } while (0)
+#define evsignal_init(ev,cb,signum) do { evw_init ((ev), (cb)); evsignal_set ((ev), (signum)); } while (0)
+#define evidle_init(ev,cb) do { evw_init ((ev), (cb)); evidle_set ((ev)); } while (0)
+#define evprepare_init(ev,cb) do { evw_init ((ev), (cb)); evprepare_set ((ev)); } while (0)
+#define evcheck_init(ev,cb) do { evw_init ((ev), (cb)); evcheck_set ((ev)); } while (0)
+#define evchild_init(ev,cb,pid) do { evw_init ((ev), (cb)); evchild_set ((ev),(pid)); } while (0)
+
+#define ev_is_active(ev) (0 + (ev)->active) /* true when the watcher has been started */