David Feuer
David Feuer
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...
```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`?
I don't know if this makes sense, but it should work at least for `Of` and `(,)`. The constraints on `f` look scary, but they really boil down to `f`...
Sometimes, the target functor of `maps` or `mapped` offers a more efficient `fmap` than the source functor. Add versions of `maps`, `mapped`, and `mapsM` that use that one instead.
Implement `never` by tying a recursive knot and then using `unsafeCoerce`. This gets rid of all its `Effect`s. It's also a bit scary.