The multistate package

[maintain]

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.

Properties

Versions0.1.1, 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
Dependenciesbase (>=4 && <6), mtl (==2.*), multistate, tfp (>=0.8), transformers (==0.3.*) [details]
LicenseBSD3
CopyrightJan Bracker, Lennart Spitzner
AuthorJan Bracker, Lennart Spitzner
MaintainerLennart Spitzner <lsp@informatik.uni-kiel.de>
StabilityExperimental
CategoryControl
Home pagehttps://github.com/lspitzner/multistate
Bug trackerhttps://github.com/lspitzner/multistate/issues
Source repositoryhead: git clone git@github.com:lspitzner/multistate.git
Executablesmultistate-example, multistate-test
UploadedWed Jun 11 15:37:53 UTC 2014 by lspitzner

Modules

Flags

NameDescriptionDefaultType
build-testBuild the MultiState-test test programDisabledAutomatic
build-exampleBuild the MultiState-example example programDisabledAutomatic

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

Downloads

Maintainers' corner

For package maintainers and hackage trustees