unliftio
fused-effects
Our great sponsors
unliftio | fused-effects | |
---|---|---|
5 | 3 | |
150 | 634 | |
0.0% | 0.3% | |
3.9 | 4.5 | |
3 months ago | about 1 month ago | |
Haskell | Haskell | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
unliftio
-
UnliftIO, ExceptT and Coercible
FWIW, your suggestion is very similar to a proposed instance for MonadUnliftIO (ExceptT e), except that effectfuls use of the type system means that it doesn't suffer from one of the proposed downsides (dubious interaction with catchAny).
-
How introduce `ResourceT` into my stack
Possibly interesting thread here: https://github.com/fpco/unliftio/issues/68
-
Is `MonadBaseControl` dead?
Any way quoting u/snoyberg : https://github.com/fpco/unliftio/issues/17#issuecomment-363655106
-
Try.do is dangerous
That's not true. It's just writing that instance is a bit tricky: https://github.com/fpco/unliftio/issues/68
-
Try.do for recoverable errors in Haskell
However, ExceptT cannot be an instance of MonadUnliftIO – because it necessarily requires multiple exit points. See this discussion which should give you an idea of how hairy and unpredictable this can be.
fused-effects
-
Where's more discussion of the designs of effect systems?
Languages such as Koka only support algebraic effects, not scoping operations such as catch and listen. The Effect Handlers in Scope paper introduces scoping operations, which lead to the Haskell libraries fused-effects and polysemy, but they turned out to have some weird semantics. eff is her effort to fix that.
- Haskell doesn't make sense without pure functions
- Monthly Hask Anything (June 2021)
What are some alternatives?
recursion-schemes - Generalized bananas, lenses and barbed wire
polysemy - :gemini: higher-order, no-boilerplate monads
lifted-base - IO operations from the base library lifted to any instance of MonadBase or MonadBaseControl
eveff - Efficient Haskell effect handlers based on evidence translation.
mmorph - Monad morphisms
eff - 🚧 a work in progress effect system for Haskell 🚧
Workflow - re-startable monad that recover the execution state from a log, and workflow patterns
freer-simple - A friendly effect system for Haskell
managed - A monad for managed values
control-monad-free - Free monads and monad transformers
exceptional - A simple Haskell type for pure code that could go wrong.
ghc - Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).