fused-effects-lens alternatives and similar packages
Based on the "Web" category.
Alternatively, view fused-effects-lens alternatives based on common mentions on social networks and blogs.
-
servant
Servant is a Haskell DSL for describing, serving, querying, mocking, documenting web applications and more! -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
ghcjs-dom
Make Document Object Model (DOM) apps that run in any browser and natively using WebKitGtk -
ghcjs-base
base library for GHCJS for JavaScript interaction and marshalling, used by higher level libraries like JSC
InfluxDB – Built for High-Performance Time Series Workloads

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of fused-effects-lens or a related project?
README
fused-effects-lens
This package provides an interface to the lens
library (and other such libraries such as microlens
and generic-lens
) that is compatible with fused-effects
. The standard formulation of lens
combinators for operating in MonadState
contexts—use
, .=
, et al—rely on mtl
for MonadState
and MonadReader
, which is not applicable to Reader
and State
effects.
This package is meant to be used alongside lens
, like so:
import Control.Lens hiding (view, use, assign)
import Control.Effect.Lens (view, use, assign)
Example
Given a Context
type that we will use in a State
effect:
data Context = Context
{ _amount :: Int
, _disabled :: Bool
} deriving (Eq, Show)
makeLenses ''Context
We can can use the use
combinators to extract a lens target from the current state, and assign
to write to a field of that state:
stateTest :: (Has (State Context) sig m) => m Int
stateTest = do
initial <- use amount
amount .= (initial + 1)
disabled .= True
use amount
You can find a more complete example, including one that works with multiple State
constraints in a single computation, in the test
directory.
License
BSD3, like fused-effects
.
*Note that all licence references and agreements mentioned in the fused-effects-lens README section above
are relevant to that project's source code only.