public static Future <Future <A> > CoJoin <A>(this Future <A> fa) { return(Now(fa)); }
public static A CoPure <A>(this Future <A> fa) { return(fa.Run()); }
public static Future <B> CoBind <A, B>(this Future <A> fa, Func <Future <A>, B> f) { return(Now(f(fa))); }
public static Future <A> Strategy <A>(Future <A> fa, IStrategy s) { return(new Future <A>(fa.Callback, s)); }