
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.
participants (1)
-
Mario Blažević