Index: libcfa/src/concurrency/io/types.hfa
===================================================================
--- libcfa/src/concurrency/io/types.hfa	(revision b0d02851854bb3ad941a9022e9ebf6702163420b)
+++ libcfa/src/concurrency/io/types.hfa	(revision 9cd44ba7ee71adceb1ca2fbafbd9671e27f4d479)
@@ -23,4 +23,5 @@
 #include "bits/locks.hfa"
 #include "bits/queue.hfa"
+#include "iofwd.hfa"
 #include "kernel/fwd.hfa"
 
@@ -170,21 +171,2 @@
 	// void __ioctx_prepare_block($io_context & ctx);
 #endif
-
-//-----------------------------------------------------------------------
-// IO user data
-struct io_future_t {
-	future_t self;
-	__s32 result;
-};
-
-static inline {
-	thread$ * fulfil( io_future_t & this, __s32 result, bool do_unpark = true ) {
-		this.result = result;
-		return fulfil(this.self, do_unpark);
-	}
-
-	// Wait for the future to be fulfilled
-	bool wait     ( io_future_t & this ) { return wait     (this.self); }
-	void reset    ( io_future_t & this ) { return reset    (this.self); }
-	bool available( io_future_t & this ) { return available(this.self); }
-}
Index: libcfa/src/concurrency/iofwd.hfa
===================================================================
--- libcfa/src/concurrency/iofwd.hfa	(revision b0d02851854bb3ad941a9022e9ebf6702163420b)
+++ libcfa/src/concurrency/iofwd.hfa	(revision 9cd44ba7ee71adceb1ca2fbafbd9671e27f4d479)
@@ -25,4 +25,5 @@
 }
 #include "bits/defs.hfa"
+#include "kernel/fwd.hfa"
 #include "time.hfa"
 
@@ -48,5 +49,4 @@
 
 struct cluster;
-struct io_future_t;
 struct $io_context;
 
@@ -58,4 +58,23 @@
 
 struct io_uring_sqe;
+
+//-----------------------------------------------------------------------
+// IO user data
+struct io_future_t {
+	future_t self;
+	__s32 result;
+};
+
+static inline {
+	thread$ * fulfil( io_future_t & this, __s32 result, bool do_unpark = true ) {
+		this.result = result;
+		return fulfil(this.self, do_unpark);
+	}
+
+	// Wait for the future to be fulfilled
+	bool wait     ( io_future_t & this ) { return wait     (this.self); }
+	void reset    ( io_future_t & this ) { return reset    (this.self); }
+	bool available( io_future_t & this ) { return available(this.self); }
+}
 
 //----------
