I have a C# method that looks a bit like this:
bool Eval() {
// do some work
if (conditionA) {
// do some work
if (conditionB) {
// do s
Well, since 'do some work' is already imperative (presumably), then I think that
let eval() =
let mutable result = false
... // ifs
result <- true
... // no more elses
result
is shorter and reasonable. (In other words, else is only mandatory for if expressions that return values; since you're doing imperative work, use if statements that don't need an else.)