lifted-base
unliftio
lifted-base | unliftio | |
---|---|---|
- | 5 | |
19 | 150 | |
- | 0.0% | |
0.0 | 3.9 | |
about 1 year ago | 4 months ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | MIT 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.
lifted-base
We haven't tracked posts mentioning lifted-base yet.
Tracking mentions began in Dec 2020.
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.
What are some alternatives?
ComonadSheet - A library for expressing "spreadsheet-like" computations with absolute and relative references, using fixed-points of n-dimensional comonads.
recursion-schemes - Generalized bananas, lenses and barbed wire
freer-effects - An implementation of "Freer Monads, More Extensible Effects".
mmorph - Monad morphisms
parallel - a library for parallel programming
Workflow - re-startable monad that recover the execution state from a log, and workflow patterns
exceptions - mtl friendly exceptions
managed - A monad for managed values
transient - A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)
layers - Modular type class machinery for monad transformer stacks.
capability - Extensional capabilities and deriving combinators
exceptional - A simple Haskell type for pure code that could go wrong.