streams: Various Haskell 2010 stream comonads
Various Haskell 2010 stream comonads.
* Data.Stream.Future provides a coinductive anti-causal stream, or non-empty
ZipList. The comonad provides access to only the
tail of the stream. Like a conventional
ZipList, this is not a monad.
data Future a = Last a | a :< Future a
Data.Stream.Future.Skew provides a non-empty skew-binary random-access-list with the semantics of
Data.Stream.Future. As with Data.Stream.Future this stream is not a
Monad, since the
Applicativeinstance zips streams of potentially differing lengths. The random-access-list structure provides a number of operations logarithmic access time, but makes
Data.Stream.Future.Skew.consless productive. Where applicable Data.Stream.Infinite.Skew may be more efficient, due to a lazier and more efficient
Data.Stream.Infinite provides a coinductive infinite anti-causal stream. The
Comonadprovides access to the tail of the stream and the
Applicativezips streams together. Unlike
Future, infinite stream form a
Monad. The monad diagonalizes the
Stream, which is consistent with the behavior of the
Applicative, and the view of a
Streamas a isomorphic to the reader monad from the natural numbers. Being infinite in length, there is no
data Stream a = a :< Stream a
Data.Stream.Infinite.Skew provides an infinite skew-binary random-access-list with the semantics of Data.Stream.Infinite Since every stream is infinite, the
Applicativeinstance can be considerably less strict than the corresponding instance for Data.Stream.Future.Skew and performs asymptotically better.
Data.Stream.Infinite.Functional.Zipper provides a bi-infinite sequence, represented as a pure function with an accumulating parameter added to optimize moving the current focus.
data Zipper a = !Integer :~ (Integer -> a)
Data.Stream.Supply provides a comonadic supply of unique values, which are generated impurely as the tree is explored.
[Skip to Readme]
|Versions [faq]||0.1.1, 0.2, 0.3, 0.3.1, 0.4, 0.5.0, 0.5.1, 0.5.1.1, 0.5.1.2, 0.6.0, 0.6.0.1, 0.6.1.1, 0.6.1.2, 0.6.3, 0.7.0, 0.7.1, 0.7.2, 0.8.0, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.0.4, 0.8.1, 0.8.2, 3.0, 220.127.116.11, 3.0.1, 18.104.22.168, 3.1, 3.1.1, 3.2, 3.2.1, 3.3|
|Dependencies||adjunctions (>=4.0.1 && <5), base (==4.*), comonad (>=4 && <6), distributive (>=0.2.1 && <1), semigroupoids (>=4 && <6), semigroups (>=0.8.3.1 && <1) [details]|
|Copyright||Copyright 2011-2013 Edward Kmett Copyright 2010 Tony Morris, Oliver Taylor, Eelis van der Weegen Copyright 2007-2010 Wouter Swierstra, Bas van Dijk Copyright 2008 Iavor S. Diatchki|
|Author||Edward A. Kmett|
|Maintainer||Edward A. Kmett <email@example.com>|
|Source repo||head: git clone git://github.com/ekmett/streams.git|
|Uploaded||by ryanglscott at Wed Jun 15 23:04:20 UTC 2016|
|Distributions||LTSHaskell:3.3, NixOS:3.3, Stackage:3.3|
|Downloads||19812 total (845 in the last 30 days)|
|Rating||2.0 (votes: 1) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2016-11-23 [all 1 reports]
For package maintainers and hackage trustees