Harendra Kumar
Harendra Kumar
From #685 : > Let's take a simplified example: > > [x1 `ahead` x2 `ahead` x3] `ahead` [y1 `ahead` y2 `ahead` y3] `ahead` [z1 `ahead` z2 `ahead` z3] > >...
`bracket` and `finally` check for exceptions so that they can release the resource on exception. However this is very expensive and blocks fusion. The current version of `bracket` releases the...
1. use a `Maybe` type for "try" action so that we can avoid the expensive "try" call if we want only a start/stop bracketing and not exception handling. This could...
The `onException` combinator is essentially implemented as: ``` step' gst st = do res return $ Yield x s Skip s -> return $ Skip s Stop -> return Stop...
Pinned arrays (Streamly.Memory.Array) are used in streamly for interfacing with foreign code or with the operating system. These pinned arrays are a generalization of bytestring. We can factor out the...
"Streamly.Network.Socket" provides stream read/write operations using Arrays. Other than these operations we also need the socket/address types and also basic read/write operations that are not bytestring based to complete the...
Currently we use `.:` for pure stream construction and `|:` for monadic stream construction. I am contemplating on changing these and using this scheme: ``` Pure list: 1 :> 2...
We will have to remove the streamly-core files from extra-source-files in streamly.cabal, to be able to do that we will need .packcheck.ignore to have "core/" in it, and it should...
A utf8 char parser can be used to implement the current utf8 decode function in a modular way. Just as we can use an unfold to encode a stream (see...
#531 added exception handling to folds, however it has an issue. The `after`, `finally` and `bracket` functions run the release action on `extract`. But extract can be called over and...