gusty / FsControl

[ARCHIVED] FsControl in now included in FSharpPlus https://fsprojects.github.io/FSharpPlus
Apache License 2.0
105 stars 16 forks source link

Delay, Combine. #48

Open gusty opened 9 years ago

gusty commented 9 years ago

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.

gusty commented 7 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.

gusty commented 7 years ago

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.