streaming
streaming copied to clipboard
An optimized general monad transformer for streaming applications, with a simple prelude of functions
Please open all new issues and pull requests at [the new repository](https://github.com/haskell-streaming/streaming). The owner of this repository has not maintained it in some time. Issues and pull requests here are...
What I most often need is something that is rate-limited by some external service. Say I must guarantee that I don't do more than X requests/second. I'm not sure if...
```haskell foo, bar :: Stream (Of Char) [] Char foo = lift ['a','b'] >>= lift . (: []) bar = lift (['a','b'] >>= (: [])) ``` By the monad transformer...
Left distribution seems utterly hopeless, but we can satisfy left catch by ignoring the second stream if the first one is empty.
I don't believe that either `mapsExposed` or `mapsMExposed` actually exposes anything it shouldn't. Whereas `hoist` must be passed a monad morphism to get sensible results, I'm pretty sure these functions...
There doesn't seem to be a test suite. I would recommend adding, at least: 1. Modules implementing the entire non-internal `streaming` API using `FreeT` instead of `Stream`. I think these...
I don't actually know if this "makes sense", but it works for `Of` and `(,)`, and it kind of smells right. ```haskell copy :: (Monad m, Comonad f) => Stream...
`zipWith3` is implemented using `next` rather than acting streamish the way `zipWith` does. Is there a reason for this? What goes wrong if `zipWith3` is implemented using `zipWith` or `zipsWith`?