Можно ли собрать компоновщик выражений вычислений, который может выставлять два или более выражения без размещения do! перед каждым?
Если я правильно прочитал соответствующий раздел руководства, это должно быть возможно с помощью метода builder Combine. Однако мой метод Combine не используется; вместо этого я получаю предупреждение о компиляторе, предлагая использовать ignore для отказа от результата.
Например, учитывая F # State monad, я хотел бы иметь возможность сделать это:
let hello who = State (fun lines -> lines @ [sprintf "hello %s" who])
let m = state {
hello "world"
hello "F#"
}
let l = Execute m []
// l should now contain ["hello world"; "hello F#"]