monad-classes alternatives and similar packages
Based on the "monad" category.
Alternatively, view monad-classes alternatives based on common mentions on social networks and blogs.
-
monad-validate
DISCONTINUED. (NOTE: REPOSITORY MOVED TO NEW OWNER: https://github.com/lexi-lambda/monad-validate) A Haskell monad transformer library for data validation
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of monad-classes or a related project?
README
See this series of articles for the detailed description and motivation.
This is a more flexible version of mtl, the monad transformers library.
You can have many layers of e.g. state transformers in your stack, and you don't have to explicitly lift your
get
s andput
s, as soon as different state transformers carry different types of states.Example:
a :: (MonadState Bool m, MonadState Int m) => m () a = do put False -- set the boolean state modify (+ (1 :: Int)) -- modify the integer state
mtl requires Θ(n2) instances (like
MonadReader e (StateT s m)
); monad-classes requires only Θ(n) of them (where n is the number of different transformer types).If you'd like to define your own monad-classes-style class, you have to write much less boilerplate code.