packages feed

auto-0.4.2.2: CHANGELOG.md

0.4.2.2
-------
<https://github.com/mstksg/auto/releases/tag/v0.4.2.2>

*   Using the *base-orphans* library for a more sane compatibility layer than
    the previous method.
*   Many documentation fixes including haddock reconfigurations on specific
    modules.

0.4.2.1
-------
<https://github.com/mstksg/auto/releases/tag/v0.4.2.1>

**DEPRECATED:** Please use `0.4.2.2`!

*   Added support for building with GHC 7.6.x.

0.4.2.0
-------
<https://github.com/mstksg/auto/releases/tag/v0.4.2.0>

*   Removed all upper bounds on dependencies except for base.
*   **Control.Auto.Blip**: Companions to `emitJusts` and `onJusts` added, for
    `Either`: `emitEithers` and `onEithers`.  Emit every item inputted, but
    fork them into one of two output blit streams based on `Right` or `Left`
    properties.  Only preserves blip semantics/makes sense if any given
    input's `Right` or `Left`ness is expected to be independent from the last
    received one.
*   **Control.Auto.Blip**: New "blip stream collapsers", `asMaybes` and
    `substituteB`.  `asMaybes` turns a blip stream into a stream of `Maybe`s,
    `Just` when something was emitted, and `Nothing` when not.  `substituteB`
    takes a regular stream and a blip stream, and outputs the values of the
    regular stream whenever the blip stream doesn't emit and the emitted value
    when it does --- basically a more powerful version of `fromBlips`, where
    the "default" value now comes from a stream instead of being always the
    same.
*   **Control.Auto.Blip**: New blip stream creator, `collectN`, which emits
    every `n` steps with the last `n` items received.
*   **Control.Auto.Blip**: New blip stream modifiers, `collectB` and
    `collectBs`.   `collectB` waits on two blip streams and emits after it has
    received something from *both*.  `collectBs` is like `collectN`, except
    emits after every `n` emitted values received with the past `n` emitted
    values.
*   **Control.Auto.Collection**: "Intervaled" counterparts to `mux` and
    `muxMany`, `muxI` and `muxManyI`.  They store `Interval`s instead of
    `Auto`s...and when the `Interval`s turned "off", they are removed from the
    collection.
*   **Control.Auto.Switch**: A new "count-down" switcher, `switchIn`, which
    acts a bit like `(-->)` and `(-?>)`, except the switch happens
    deterministically after a pre-set given number of steps.  Act like the
    first `Auto` for a given number of steps, and then act like the second
    ever after.  Basically a direct implementation of the common
    `onFor n a1 --> a2` idiom.

0.4.1.0
-------
<https://github.com/mstksg/auto/releases/tag/v0.4.1.0>

*   Adapted to more consistent semantic versioning scheme, where the third
    number is a new update, and the fourth number is reserved for bug fixes.
*   **Control.Auto.Blip**: `foldrB` and `foldlB'` officially **deprecated** in
    their current forms.  From version `0.5`, they will have corrected
    functionality and a new type signature.  The current functionality doesn't
    really make sense, and was a mistake during their implementation.  You can
    begin using the new versions now, with:

    ```
    foldrB  = foldr  (merge f) mempty
    foldlB' = foldl' (merge f) mempty
    ```
*   **Control.Auto.Effects**: New "sealing" mechanisms for underlying
    `Reader`: `sealReaderMVar` and `sealReaderM`.  `sealReaderMVar` allows
    things like "hot swapping" configuration data; at every step, the `Auto`
    asks for its environment from an `MVar`, that could be changed/modified
    from a different thread with new configuration data.  `sealReaderM` is a
    more general/potentially dangerous version where the environment is
    retrieved through an arbitrary action in the underlying monad.
*   **Control.Auto.Run**: New powerful combinator `throughT`, letting you
    "lift" an `Auto` to run over/through any `Traversable`.  Can replace
    `during`, `perBlip`, `accelOverList`, etc.  The specialized versions will
    remain more performant, though.
*   **Control.Auto.Run**: In the spirit of the hip and current Foldable
    Traversable Proposal, `overTraversable` added to complement `overList`, so
    you can now "stream" `Auto`s over `IntMap`s, `Maybe`s, `Const`s...or any
    `Traversable`.  Not replacing `overList` completely, though, for
    performance reasons.
*   **Control.Auto.Blip**: Removed unnecessary `Monad` constraints on
    `became_`, `became'`, `noLonger_`, and `noLonger'`.
*   **Control.Auto.Interval**: Bug fix on `holdFor` and `holdFor_`, where they
    had the potential to overflow `Int` and begin "holding" forever when
    given specifically malformed input.
*   **Control.Auto.Time**: Performance boost on `accelOverList` by using
    strict `Writer` over lazy.


0.4.0.0
-------
<https://github.com/mstksg/auto/releases/tag/v0.4.0.0>

*   Bug fix version *reverting* breaking changes from `0.3.0.0`.  `0.4.x`
    should be able to run all `0.2.x` programs with full backwards
    compatibility.
*   **Control.Auto.Effects**: Reverted back to lazy `StateT` and `WriterT`,
    because of situations where *auto* cannot resolve fixed points for
    recursive bindings.
*   **Control.Auto.Blip**: `forkB` renamed to `splitB` to prevent confusion
    with "fork", usually used in Haskell to refer to concurrency.  Also
    anticipating adding concurrency-based `Auto`s, so this is a move to clear
    the way for any possible conflicts.

0.3.0.0
-------
<https://github.com/mstksg/auto/releases/tag/v0.3.0.0>

**DEPRECATED:** Please use `0.4.0.0`!

*   **Control.Auto.Effects**: Breaking change: switched to strict `StateT`
    and `WriterT`.
*   **Control.Auto.Effects**: Added `readerA` and `writerA`, for convenience
    in "creating" `Auto`s under `ReaderT` and `WriterT`; also added `stateA`
    and `accumA` for completeness.

0.2.0.6
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.6>

*   **Control.Auto.Run**: As a part of an effort to provide integration with
    *disciplined* effectful streaming, introduced `streamAutoEffects` and
    `toEffectStream`, which convert `Auto m a b`'s to *streams of effects* in
    `m` that can be processed and manipulated and integrated with any
    [`ListT`-compatible library][1], like *pipes*.  See documentation for more
    details.  These were also added to the exports of `Control.Auto`.
*   **Control.Auto.Interval**: New `Auto` `holdJusts`, which stretches the
    last seen "on"/`Just` value over the duration of a "off"/`Nothing`
    interval.
*   Documentation fixes to emphasize *auto*'s focus on *value* streams, not
    *effect* streams, in contrast to *pipes*, *conduit*, etc.
*   Version restrictions on some packages relaxed on *profunctors*,
    *semigroups*, and *base*.

[1]: http://www.haskellforall.com/2014/11/how-to-build-library-agnostic-streaming.html

0.2.0.5
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.5>

*   **Control.Auto.Process.Random**: Added combinators and sealers dealing
    for working with an underlying `Rand` or `RandT` monad.
*   Because of this, committed to adding *MonadRandom* as a dependency.

0.2.0.4
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.4>

*   **Control.Auto**: Added `unserialize`, `delay`, and `delay_` to
    `Control.Auto`'s exports.
*   **Control.Auto.Blip**: New blip stream manipulator: `forkB`, which forks a
    blip stream into to separate ones based on whether or not the emitted
    values match a predicate.
*   **Control.Auto.Time**: Added a generalized version of `stretch`,
    `stretchAccumBy` which allows access to the "skipped" inputs during the
    stretched periods, as well as the ability to control the outputs during
    the stretched periods.


0.2.0.3
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.3>

*   **Control.Auto.Collection**: Bug for `dynZipF` fixed, where newly added
    `Auto`s would overwrite ones alreay stored.
*   **Control.Auto**: `fromInterval` added to `Control.Auto`'s exports.


0.2.0.2
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.2>

**DEPRECATED:** Please use `0.2.0.3`!

*   **Control.Auto.Collection**: `dynZipF` and `dynMapF`, implicit-serialization
    dynamic collections.


0.2.0.1
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.1>

*   **Control.Auto.Effects**: `catchA` added to `Control.Auto.Effects`,
    allowing explicit catching of runtime exceptions thrown in underlying
    `IO`.


0.2.0.0
-------
<https://github.com/mstksg/auto/releases/tag/v0.2.0.0>

*   First official release.  No backwards-incompatible changes until
    `0.3.0.0`.