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 -
monad-io-adapter
DISCONTINUED. A Haskell package that adapts between MonadIO and MonadBase IO [GET https://api.github.com/repos/cjdev/monad-io-adapter: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository]
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
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
gets andputs, 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 statemtl 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.