multistate: like mtl's ReaderT/StateT, but more than one contained value/type.

[ bsd3, control, library ] [ Propose Tags ]

When using multiple ReaderT's or StateT's in the same monad stack, it becomes necessary to lift the operations in order to affect a specific transformer. Using heterogenous lists (type level functions), a GADT and a corresponding type class, this package provides transformers that remove that necessity: MultiReaderT/MultiStateT can contain a heterogenous list of values. The type inferred for the getter/setter determines which value is read/written. See the Example application for some very basic usage. This package currently lacks a complete set of "lifting instances", i.e. instance definitions for classes such as mtl's MonadReader "over" the newly introduced monad transformers. These "lifting instances" would be necessary to achieve full compatability with existing transformers. Ping me if you find anything specific missing.

Flags

Automatic Flags
NameDescriptionDefault
build-test

Build the MultiState-test test program

Disabled
build-example

Build the MultiState-example example program

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.1, 0.1.2, 0.1.3.1, 0.1.3.2, 0.2.0.0, 0.3.0.0, 0.6.0.0, 0.6.1.0, 0.6.2.0, 0.7.0.0, 0.7.1.1, 0.7.1.2, 0.8.0.0, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.0.4
Dependencies base (>=4 && <6), mtl (>=2 && <3), multistate, tfp (>=0.8), transformers (>=0.3 && <0.4) [details]
License BSD-3-Clause
Copyright Jan Bracker, Lennart Spitzner
Author Jan Bracker, Lennart Spitzner
Maintainer Lennart Spitzner <lsp@informatik.uni-kiel.de>
Category Control
Home page https://github.com/lspitzner/multistate
Bug tracker https://github.com/lspitzner/multistate/issues
Source repo head: git clone git@github.com:lspitzner/multistate.git
Uploaded by lspitzner at 2014-07-28T11:30:14Z
Distributions Arch:0.8.0.4, Debian:0.8.0.3, LTSHaskell:0.8.0.4, NixOS:0.8.0.4, Stackage:0.8.0.4
Reverse Dependencies 6 direct, 2 indirect [details]
Executables multistate-example, multistate-test
Downloads 20117 total (68 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]