auto: Denotative, locally stateful programming DSL & platform
(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
you can get started by reading the tutorial, which is
also in this project directory in the
directory, and also incidentally online at
Also, check out the
repository on github for plenty of real-world and toy
examples to learn from; I've also done a
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 [faq]||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 repo||head: git clone git://github.com/mstksg/auto.git|
|Uploaded||by jle at Sat Jan 14 04:51:39 UTC 2017|
|Distributions||LTSHaskell:0.4.3.1, NixOS:0.4.3.1, Stackage:0.4.3.1|
|Downloads||5463 total (139 in the last 30 days)|
|Rating||2.25 (votes: 2) [estimated by rule of succession]|
Docs available [build log]
Last success reported on 2017-01-14 [all 1 reports]
For package maintainers and hackage trustees