Скажем, я хочу вернуть Option в рабочий процесс async:
let run = 
    async {
        let! x = doAsyncThing
        let! y = doNextAsyncThing x
        match y with
        | None -> return None
        | Some z -> return Some <| f z
    }
В идеале я бы использовал, возможно, выражение вычисления из FSharpx одновременно с async, чтобы избежать выполнения match. Я мог бы создать пользовательский построитель, но есть ли способ объединить два выражения вычислений? Это может выглядеть примерно так:
let run = 
    async {
        let! x = doAsyncThing
        let! y = doNextAsyncThing x
        return! f y
    }