The latest version of streams is 3.3.2-0.

streams

Version 0.5.0 revision 0 uploaded by EdwardKmett.

Package meta

Synopsis
Various Haskell 2010 stream comonads
Description

Various Haskell 2010 stream comonads.

  • Data.Stream.Branching provides an "f-Branching Stream" comonad, aka the cofree comonad, or generalized rose tree.

data Stream f a = a :< f (Stream a)
  • 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 NonEmpty a = a :| [a]
  • Data.Stream.Infinite provides a coinductive infinite anti-causal stream. The Comonad provides access to the tail of the stream and the Applicative zips 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 Stream as a isomorphic to the reader monad from the natural numbers. Being infinite in length, there is no Alternative instance, but instead the FunctorAlt instance provides access to the Semigroup of interleaving streams.

data Stream a = a :< Stream a
data Zipper a = !Integer :~ (Integer -> a)

Changes since 0.1:

  • A number of strictness issues with NonEmpty were fixed

  • More documentation

Author
Edward A. Kmett
Bug reports
n/a
Category
Control, Comonads
Copyright
Copyright 2011 Edward Kmett Copyright 2010 Tony Morris, Oliver Taylor, Eelis van der Weegen Copyright 2007-2010 Wouter Swierstra, Bas van Dijk
Homepage
http://github.com/ekmett/streams
Maintainer
Edward A. Kmett <ekmett@gmail.com>
Package URL
n/a
Stability
provisional

Components