Open gusty opened 9 years ago
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.
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.