Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free. Learn more →
Effectful Alternatives
Similar projects and alternatives to effectful
-
-
ghc-proposals
Proposed compiler and language changes for GHC and GHC/Haskell
-
SonarQube
Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
-
-
-
snap-core
Core type definitions (Snap monad, HTTP types, etc) and utilities for web handlers.
-
PolysemyCleanArchitecture
Showcasing how the Polysemy library can be used to implement a REST application conforming to the guidelines of the Clean Architecture model. (by thma)
-
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
-
-
-
-
-
haskellweekly
Publishes curated news about the Haskell programming language.
-
mtl-style-example
A small example of using mtl style to unit test effectful code
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
effectful reviews and mentions
-
Haskell ecosystem questions.
cats-effects -> https://github.com/haskell-effectful/effectful
-
Real world applications with tagless-final, ReaderT, and three-layers
API for basic usage is very similar, but things quickly go south once you want to use higher order effects (i.e. effects that make use of the m type parameter). A lot of things then become very hard to write due to complex types or outright impossible (this issue is a good example - a reasonable thing to do that is very straightforward to write with effectful, apparently impossible to do with polysemy).
FWIW effectful is an improvement in both departments (disclaimer: I'm the author).
-
How to Lose Functional Programming at Work
> Lets say you have a huge overly-convoluted Haskell program. Somewhere deep down a call hierachy of pure functions you need to print something to the console. That is not easy to refactor.
> Or vice-versa you have a huge convoluted program where everything happens inside an IO monad because at some point something is written to the console. Now you realize you dont need to write to the console.
These problems are essentially completely resolved these days by a modern effect system like effectful. Basically, they allow you to do arbitrary effects deep down a call stack with minimal plumbing (you still have adjust the types, as you should: that's the point of effect tracking!) and also to remove effects, so you can easily convert between pure code and "effectful code that just so happens to do no effects".
-
Effectful | Paweł Szulc | Lambda Days 2022
See also https://github.com/haskell-effectful/effectful/issues/99.
-
Monad transformer libraries
FYI, transformers and mtl have several subtle traps. You can read about them here.
- Comparing ZIO to Haskell effects libraries like Polysemy?
-
Effect Zoo for Scala 3
Consider 2 Haskell projects: Cleff and Effectful. They both are extensible effect systems, built around ReaderT design pattern. At their core, they use fused ReaderT + IO monad, with extensible environment. This architecture is very similar to ZIO's. All 3 even share the same limitation - inability to express nondeterminism (not very relevant fact, but I just want to emphasize the similarity).
-
[ANN] effectful - an easy to use, performant extensible effects library
For people unfamiliar with it, it's an extensible effects library that: - Is very fast (see benchmarks) when compared to other effect libraries and MTL as it's internally a ReaderT over IO. - Has flexible and easy to use API for higher order effects (similar to MonadUnliftIO). - Fixes subtle issues of popular monad transformers. - Makes it easy to integrate with the existing ecosystem of libraries.
The writeup of the issues with WriterT at https://github.com/haskell-effectful/effectful/blob/master/transformers.md is excellent, I would have much appreciated this 15-ish years back when I was stumbling through those problems and eventually settled on what everyone seems to settle on, which is restricted State. Though the transformers/mtl docs seem much improved from the old days, if they just linked to that description it have made so much clearer to me. The concrete examples with memory use make it very clear.
-
A note from our sponsor - SonarQube
www.sonarqube.org | 1 Apr 2023
Stats
haskell-effectful/effectful is an open source project licensed under BSD 3-clause "New" or "Revised" License which is an OSI approved license.