Brian McKenna
Brian McKenna
Yes, it's really annoying. I guess there should be a combinator for `arb` to filter based on a predicate.
Practical consequence is that refactoring or reusing code must be done very carefully to make sure you don't accidentally make things sequential or parallel.
@gcanti `g` is pure up until it is performed. Some languages have tools to ensure IO can only be performed by a runtime. We have to pretend in JS.
This discussion is has some weird theoretical ideas. There is a very simple and practical reason why `ap` should have consistent parallelism with `chain`: No-cost code reuse and refactoring are...
@gcanti we have encoded IO using functions but we have to pretend there is no domain. `a = g(), b = g()` is not a thing we should be able...
@gcanti don't think that's an accurate model, since the only implementation of that signature is (literally) [`absurd`](https://hackage.haskell.org/package/void-0.7.1/docs/Data-Void.html#v:absurd).
@gcanti `Unit -> IO a` is the same as `IO a`. I don't think I understand the model. But, if it were the model: ```js a = g(undefined) b =...
Good stuff!
Generally I want to disable withFilter. Is that enough for this? https://github.com/puffnfresh/wartremover/issues/55
@jimmydivvy sounds like `filter` is broken, :+1: for a PR!