diff --git a/index.js b/index.js
index <HASH>..<HASH> 100644
--- a/index.js
+++ b/index.js
@@ -15,11 +15,25 @@ function when ( ) {
 	return result;
 }
 
+function fork ( failure, success ) {
+	return function apply_fork ( ) {
+		var
+			args = Array.prototype.slice.call(arguments),
+			error = args.shift();
+
+		if ( error ) {
+			return void failure(error);
+		}
+		return void success.apply(null, args);
+	};
+}
+
 module.exports = Types;
 module.exports.handle = Handler.set;
 module.exports.promise = Promise;
 module.exports.when = when;
 module.exports.chain = when;
+module.exports.fork = fork;
 
 if ( typeof window !== 'undefined' && typeof window.promix === 'undefined' ) {
 	window.promix = module.exports;
Added promix.fork() for creating a callback to route between unary error and success handlers.