[Haskell] ANN: Three package announcements
Mario Blažević
mblazevic at stilo.com
Mon Mar 22 09:48:05 EDT 2010
There are three new packages on Hackage:
- monad-parallel 0.5
(http://hackage.haskell.org/package/monad-parallel)
- monad-coroutine 0.5
(http://hackage.haskell.org/package/monad-coroutine)
- Streaming Component Combinators 0.5
(http://hackage.haskell.org/package/scc)
The first two packages are completely new. Their functionality has
been present in SCC 0.4, but I thought they might be useful on their
own. I'm keeping all the version numbers in sync for now, and the source
code for all three packages is in a single Darcs repository at
http://code.haskell.org/SCC/.
The monad-parallel library defines two Monad subclasses,
MonadParallel and MonadFork, that enable monadic computations to be
executed in parallel and their results combined. The library also
exports a subset of the Control.Monad interface (ap, sequence, and
related functions), adjusted to exploit the parallelism. The only
currently defined MonadParallel instances are IO, Maybe, [], and
Identity. More instances could be added, but I didn't want the package
to depend on MTL or transformers. The library design was heavily
influenced by the discussion in this Cafe thread:
http://www.mail-archive.com/haskell-cafe@haskell.org/msg68581.html
The monad-coroutine package exports a generic monad transformer
Coroutine: Functor s => MonadTrans (Coroutine s). A
Coroutine-transformed monad can suspend at any point, returning its
resumption wrapped in the functor s. There are also some functions for
manipulating and running coroutines, as well as a couple of useful
suspension functors such as Yield and Await.
Finally, version 0.5 of Streaming Component Combinators (a.k.a. SCC)
comes with some significant code refactoring (as the two aforementioned
packages prove), simplifications, and performance enhancements. No new
features have been added since the 0.4 release.
More information about the Haskell
mailing list