public static IWaitable <T> With <T>(this IWaitable <T> self, out WaitableValue <T> value) { value = new WaitableValue <T>(self); return(self); }