auto 0.4.3.0 → 0.4.3.1
raw patch · 7 files changed
+98/−8 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Auto.Blip.Internal: instance Constructor C1_0Blip
- Control.Auto.Blip.Internal: instance Constructor C1_1Blip
- Control.Auto.Blip.Internal: instance Datatype D1Blip
- Control.Auto.Blip.Internal: instance Functor Blip
- Control.Auto.Blip.Internal: instance Generic (Blip a)
- Control.Auto.Blip.Internal: instance NFData a => NFData (Blip a)
- Control.Auto.Blip.Internal: instance Semigroup a => Monoid (Blip a)
- Control.Auto.Blip.Internal: instance Semigroup a => Semigroup (Blip a)
- Control.Auto.Blip.Internal: instance Serialize a => Serialize (Blip a)
- Control.Auto.Blip.Internal: instance Show a => Show (Blip a)
- Control.Auto.Blip.Internal: instance Typeable Blip
- Control.Auto.Core: instance (Monad m, Alternative m) => Alternative (Auto m a)
- Control.Auto.Core: instance (Monad m, Floating b) => Floating (Auto m a b)
- Control.Auto.Core: instance (Monad m, Fractional b) => Fractional (Auto m a b)
- Control.Auto.Core: instance (Monad m, IsString b) => IsString (Auto m a b)
- Control.Auto.Core: instance (Monad m, Monoid b) => Monoid (Auto m a b)
- Control.Auto.Core: instance (Monad m, Num b) => Num (Auto m a b)
- Control.Auto.Core: instance (Monad m, Semigroup b) => Semigroup (Auto m a b)
- Control.Auto.Core: instance Monad m => Applicative (Auto m a)
- Control.Auto.Core: instance Monad m => Arrow (Auto m)
- Control.Auto.Core: instance Monad m => ArrowChoice (Auto m)
- Control.Auto.Core: instance Monad m => Category (Auto m)
- Control.Auto.Core: instance Monad m => Choice (Auto m)
- Control.Auto.Core: instance Monad m => Functor (Auto m a)
- Control.Auto.Core: instance Monad m => Profunctor (Auto m)
- Control.Auto.Core: instance Monad m => Strong (Auto m)
- Control.Auto.Core: instance MonadFix m => ArrowLoop (Auto m)
- Control.Auto.Core: instance MonadFix m => Costrong (Auto m)
- Control.Auto.Core: instance Typeable Auto
+ Control.Auto: infixr 1 -?>
+ Control.Auto.Blip: infixl 5 &>
+ Control.Auto.Blip: infixr 5 <&
+ Control.Auto.Blip.Internal: infixl 5 `mergeR`
+ Control.Auto.Blip.Internal: infixr 5 `mergeL`
+ Control.Auto.Blip.Internal: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Blip.Internal: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Blip.Internal: instance Data.Semigroup.Semigroup a => GHC.Base.Monoid (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Blip.Internal: instance Data.Serialize.Serialize a => Data.Serialize.Serialize (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Blip.Internal: instance GHC.Base.Functor Control.Auto.Blip.Internal.Blip
+ Control.Auto.Blip.Internal: instance GHC.Generics.Generic (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Blip.Internal: instance GHC.Show.Show a => GHC.Show.Show (Control.Auto.Blip.Internal.Blip a)
+ Control.Auto.Core: instance (GHC.Base.Monad m, Data.Semigroup.Semigroup b) => Data.Semigroup.Semigroup (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance (GHC.Base.Monad m, Data.String.IsString b) => Data.String.IsString (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance (GHC.Base.Monad m, GHC.Base.Alternative m) => GHC.Base.Alternative (Control.Auto.Core.Auto m a)
+ Control.Auto.Core: instance (GHC.Base.Monad m, GHC.Base.Monoid b) => GHC.Base.Monoid (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance (GHC.Base.Monad m, GHC.Float.Floating b) => GHC.Float.Floating (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance (GHC.Base.Monad m, GHC.Num.Num b) => GHC.Num.Num (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance (GHC.Base.Monad m, GHC.Real.Fractional b) => GHC.Real.Fractional (Control.Auto.Core.Auto m a b)
+ Control.Auto.Core: instance Control.Monad.Fix.MonadFix m => Control.Arrow.ArrowLoop (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance Control.Monad.Fix.MonadFix m => Data.Profunctor.Strong.Costrong (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Control.Arrow.Arrow (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Control.Arrow.ArrowChoice (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Control.Category.Category (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Data.Profunctor.Choice.Choice (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Data.Profunctor.Strong.Strong (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => Data.Profunctor.Unsafe.Profunctor (Control.Auto.Core.Auto m)
+ Control.Auto.Core: instance GHC.Base.Monad m => GHC.Base.Applicative (Control.Auto.Core.Auto m a)
+ Control.Auto.Core: instance GHC.Base.Monad m => GHC.Base.Functor (Control.Auto.Core.Auto m a)
+ Control.Auto.Interval: infixr 1 `compI`
+ Control.Auto.Interval: infixr 3 <|?>
+ Control.Auto.Switch: infixr 1 -?>
- Control.Auto.Collection: gatherMany :: (Ord k, Monad m, Serialize k, Serialize b) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
+ Control.Auto.Collection: gatherMany :: forall k a m b. (Ord k, Monad m, Serialize k, Serialize b) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
- Control.Auto.Collection: gatherMany_ :: (Ord k, Monad m, Serialize k) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
+ Control.Auto.Collection: gatherMany_ :: forall k a m b. (Ord k, Monad m, Serialize k) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
- Control.Auto.Collection: gatherMany__ :: (Ord k, Monad m) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
+ Control.Auto.Collection: gatherMany__ :: forall k a m b. (Ord k, Monad m) => (k -> Interval m a b) -> Auto m (Map k a) (Map k b)
Files
- .gitignore +2/−0
- CHANGELOG.md +15/−0
- README.md +8/−3
- auto.cabal +4/−3
- src/Control/Auto/Process/Random.hs +2/−1
- stack.yaml +66/−0
- tutorial/tutorial.md +1/−1
.gitignore view
@@ -2,3 +2,5 @@ /dist /.cabal-sandbox /tmp+/.stack-work+
CHANGELOG.md view
@@ -1,3 +1,18 @@+0.4.3.1+-------+<https://github.com/mstksg/auto/releases/tag/v0.4.3.1>++* Compatibility support for *MonadRandom-0.5*.++0.4.3.0+-------+<https://github.com/mstksg/auto/releases/tag/v0.4.3.0>++* **Control.Auto.Blip**: New blip stream splitter `onEitherB`, which splits+ an incoming blip stream into two output streams based on whether the+ emitted items resolve to `Left` or `Right` when applied to the splitting+ function.+ 0.4.2.4 ------- <https://github.com/mstksg/auto/releases/tag/v0.4.2.4>
README.md view
@@ -1,6 +1,11 @@ Auto ==== +[](https://hackage.haskell.org/package/auto)+[](http://stackage.org/lts/package/auto)+[](http://stackage.org/nightly/package/auto)+[](https://travis-ci.org/mstksg/auto)+ [](https://gitter.im/mstksg/auto?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ~~~bash@@ -11,7 +16,7 @@ ------------- ~~~haskell--- Let's impliement a PID feedback controller over a black box system.+-- Let's implement a PID feedback controller over a black box system. import Control.Auto import Prelude hiding ((.), id)@@ -25,7 +30,7 @@ -- A PID controller adjusts the input to the black box system until the -- response matches the target. It does this by adjusting the input based on--- the current error, the cumulative sum, and the consecutative differences.+-- the current error, the cumulative sum, and the consecutive differences. -- -- See http://en.wikipedia.org/wiki/PID_controller --@@ -138,7 +143,7 @@ concepts. Your building blocks are well-defined *ideas*. * **Compositional**: You build your eventually complex program/game out of- small, simple components. These simple components compose with eachother;+ small, simple components. These simple components compose with each other; and compositions of components compose as well with other components. Every "layer" of composition is seamless. It's the [scalable program architecture][spa] principle in practice: If you combine an A with an A,
auto.cabal view
@@ -1,5 +1,5 @@ name: auto-version: 0.4.3.0+version: 0.4.3.1 synopsis: Denotative, locally stateful programming DSL & platform description: (Up to date documentation is maintained at <https://mstksg.github.com/auto>)@@ -40,7 +40,7 @@ <https://github.com/mstksg/auto-examples auto-examples> repository on github for plenty of real-world and toy examples to learn from; I've also done a- <blog.jle.im/entries/series/+all-about-auto blog series>+ <http://blog.jle.im/entries/series/+all-about-auto blog series> on this library, with examples and full tutorials! . Support available on freenode's #haskell-auto,@@ -56,11 +56,12 @@ copyright: (c) Justin Le 2015 category: Control homepage: https://github.com/mstksg/auto-bug-reports: https://github.com/mstksg/issues+bug-reports: https://github.com/mstksg/auto/issues build-type: Simple extra-source-files: README.md CHANGELOG.md tutorial/tutorial.md+ stack.yaml .gitignore cabal-version: >=1.10
src/Control/Auto/Process/Random.hs view
@@ -131,12 +131,13 @@ import Control.Auto.Interval import Control.Category import Control.Monad (guard)-import Control.Monad.Random+import Control.Monad.Random (MonadRandom(..), RandT, runRandT) import Data.Bits import Data.Orphans () import Data.Serialize import Data.Tuple import Prelude hiding (id, (.), concat, concatMap, sum)+import System.Random (RandomGen(..), Random(..), StdGen) -- | Given a seed-consuming generating function of form @g -> (b, g)@
+ stack.yaml view
@@ -0,0 +1,66 @@+# This file was automatically generated by 'stack init'+# +# Some commonly used options have been documented as comments in this file.+# For advanced use and comprehensive documentation of the format, please see:+# http://docs.haskellstack.org/en/stable/yaml_configuration/++# Resolver to choose a 'specific' stackage snapshot or a compiler version.+# A snapshot resolver dictates the compiler version and the set of packages+# to be used for project dependencies. For example:+# +# resolver: lts-3.5+# resolver: nightly-2015-09-21+# resolver: ghc-7.10.2+# resolver: ghcjs-0.1.0_ghc-7.10.2+# resolver:+# name: custom-snapshot+# location: "./custom-snapshot.yaml"+resolver: lts-6.3++# User packages to be built.+# Various formats can be used as shown in the example below.+# +# packages:+# - some-directory+# - https://example.com/foo/bar/baz-0.0.2.tar.gz+# - location:+# git: https://github.com/commercialhaskell/stack.git+# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a+# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a+# extra-dep: true+# subdirs:+# - auto-update+# - wai+# +# A package marked 'extra-dep: true' will only be built if demanded by a+# non-dependency (i.e. a user package), and its test suites and benchmarks+# will not be run. This is useful for tweaking upstream packages.+packages:+- '.'+# Dependency packages to be pulled from upstream that are not in the resolver+# (e.g., acme-missiles-0.3)+extra-deps: []++# Override default flag values for local packages and extra-deps+flags: {}++# Extra package databases containing global packages+extra-package-dbs: []++# Control whether we use the GHC we find on the path+# system-ghc: true+# +# Require a specific version of stack, using version ranges+# require-stack-version: -any # Default+# require-stack-version: ">=1.1"+# +# Override the architecture used by stack, especially useful on Windows+# arch: i386+# arch: x86_64+# +# Extra directories used by stack for building+# extra-include-dirs: [/path/to/dir]+# extra-lib-dirs: [/path/to/dir]+# +# Allow a newer minor version of GHC than the snapshot specifies+# compiler-check: newer-minor
tutorial/tutorial.md view
@@ -752,7 +752,7 @@ value. ~~~haskell-ghci> interactAuto (onFor 4 . (++ "!!!"))+ghci> interactAuto (onFor 4 . arr (++ "!!!")) > hello hello!!! > how