The auto package
(Up to date documentation is maintained at https://mstksg.github.com/auto)
Read the README first! https://github.com/mstksg/auto/blob/master/README.md , for motivating examples, and concrete explanations of things described here.
auto is a Haskell DSL and platform providing declarative, compositional, denotative semantics for discrete-step, locally stateful, interactive programs, games, and automations, with implicitly derived serialization. It is suited for any domain where either the input or the output can be described as a stream of values: a stream of input events, output views, etc.
auto works by providing a type that encapsulates value stream transformers, or locally stateful functions; by specifying your program as a (potentially cyclic) graph of relationships between value streams, you create a way of declaring a system based simply on static relationships between quantities.
Instead of a state monad type solution, where all functions have access to a rigid global state, auto works by specifying relationships which each exist independently and on their own, without any global state.
A more fuller exposition is in the README.md, in this project directory and also online at https://github.com/mstksg/auto/blob/master/README.md; you can get started by reading the tutorial, which is also in this project directory in the tutorial directory, and also incidentally online at https://github.com/mstksg/auto/blob/master/tutorial/tutorial.md. Also, check out the auto-examples repository on github for plenty of real-world and toy examples to learn from; I've also done a blog series on this library, with examples and full tutorials!
Support available on freenode's #haskell-auto, #haskell-game, and also on the github issue tracker for the source repository.
Import Control.Auto to begin!
[Skip to Readme]
|Versions||0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.2.0.6, 0.3.0.0, 0.4.0.0, 0.4.1.0, 0.4.2.0, 0.4.2.1, 0.4.2.2, 0.4.2.3, 0.4.3.0, 0.4.3.1 (info)|
|Dependencies||base (>=4.6 && <5), base-orphans (>=0.3.1), bytestring (>=0.10.4.0), cereal (>=0.4.1.1), containers (>=0.5), deepseq (>=1.3.0), MonadRandom (>=0.3.0.1), profunctors (>=4.3), random (>=1.1), semigroups (>=0.16), transformers (>=0.4.2.0) [details]|
|Copyright||(c) Justin Le 2015|
|Source repository||head: git clone git://github.com/mstksg/auto.git|
|Uploaded||Sat Jan 14 04:51:39 UTC 2017 by jle|
|Distributions||LTSHaskell:0.4.3.1, NixOS:0.4.3.1, Stackage:0.4.3.1, Tumbleweed:0.4.3.1|
|Downloads||1812 total (26 in the last 30 days)|
|Status||Docs available [build log]
Last success reported on 2017-01-14 [all 1 reports]
For package maintainers and hackage trustees