public static void Observe(this IAsync async) { async.Receive(delegate(Result result) { if (result.IsError) { result.Observe(); } }); }