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 && <4.9), bytestring (>=0.10.4.0 && <0.11), cereal (>=0.4.1.1 && <0.5), containers (>=0.5.5.1 && <0.6), deepseq (>=18.104.22.168 && <2.0), MonadRandom (>=0.3.0.1 && <0.4), profunctors (>=4.3 && <5.0), random (>=1.1 && <2.0), semigroups (==0.16.*), transformers (>=0.4.2.0 && <0.5) [details]|
|Copyright||(c) Justin Le 2015|
|Revised||Revision 1 made by jle at Mon Apr 6 08:59:53 UTC 2015|
|Source repo||head: git clone git://github.com/mstksg/auto.git|
|Uploaded||by jle at Mon Apr 6 08:59:03 UTC 2015|
|Distributions||LTSHaskell:0.4.3.1, NixOS:0.4.3.1, Stackage:0.4.3.1|
|Downloads||8240 total (380 in the last 30 days)|
|Rating||2.25 (votes: 2) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2015-04-06 [all 1 reports]
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
For package maintainers and hackage trustees