monad-var alternatives and similar packages
Based on the "monad" category.
Alternatively, view monad-var alternatives based on common mentions on social networks and blogs.
-
monad-validate
(NOTE: REPOSITORY MOVED TO NEW OWNER: https://github.com/lexi-lambda/monad-validate) A Haskell monad transformer library for data validation -
monad-control
Lift control operations, like exception catching, through monad transformers -
monad-time
Type class for monads which carry the notion of the current time. -
monad-unlift-ref
Typeclasses for representing monad (transformer) morphisms -
monad-unlift
Typeclasses for representing monad (transformer) morphisms -
monad-logger-prefix
Easily add a prefix to your MonadLogger output. -
monad-batcher
An applicative monad that batches commands for later more efficient execution -
monad-supply
Support for computations which consume values from a (possibly infinite) supply. -
monad-io-adapter
A Haskell package that adapts between MonadIO and MonadBase IO -
monad-task
Task monad transformer that turns event processing into co-routines programming. -
monad-resumption
Resumption and Reactive-Resumption Monads for the Haskell programming language. -
monad-loops-stm
STM-specific control operators (split out of monad-loops as of version 0.4) -
monad-introspect
A reader monad that gives the environment access to the entire transformer stack -
monad-control-identity
Stronger classes than monad-control -
monad-open
Open-ended computation for when you need it (open recursion) -
monad-peel
Lift control operations like exception catching through monad transformers -
monad-interleave
Monads with an unsaveInterleaveIO-like operation -
monad-control-aligned
Lift control operations, like exception catching, through monad transformers
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of monad-var or a related project?
README
monad-var
The aim of this library is to provide a unified set of operations (new
, read
, write
, swap
, various strict mutate*
functions and their derivatives (like mutate-and-return-the-old-value) and a certain interface for MVar
-like things) over all common variable types: IORef
, STRef s
, MVar
, TVar
, TMVar
.
When possible type classes are generalized to be over abstract containers rather than variables: e.g. it'd make sense to implement MonadRead TChan
and MonadMutate_ Vector
instances, but no such instances are provided right now.
There are also some lenses to be described in an upcoming blog post.