Delay, Combine.
It would be nice to allow other applications to create generic workflows. Currently a simple monad workflow is possible but in F# there are more operations available, some of them depends on the type, like Delay and Combine. So it worths exploring the possibility of adding Delay, Combine as method-classes and see what comes up. There is some potential inspiration here.
This was implemented here.
But note that the default definition uses the lazy signature let delay x = x() even for non-lazy monads like list or array which in theory should be defined as let delay x = x.
By doing this we don't need to specify a special run for strict monads.
At the moment I don't see a problem with this.
After the merge with FSharpPlus this issue will be tracked here.
And now I see a problem with the always-delayed approach, see the code example there.