ANNOUNCE: monoid-subclasses-0.1.1, incremental-parser-0.2.2, and SCC-0.8
blamario at acanac.net
Fri Mar 22 05:07:14 CET 2013
The new package monoid-subclasses  exports a number of classes
that sit between monoids and groups: ReductiveMonoid,
CancellativeMonoid, GCDMonoid, MonoidNull, and FactorialMonoid among
others. The package also comes with class instances for all applicable
data types from base, vector, containers, bytestring, and text packages.
These classes were initially a part of the incremental-parser
package  but they've moved, so incremental-parser-0.2.2 now depends
on monoid-subclasses which has added more class methods and instances.
The parsers constructed using the incremental-parser library generally
work on any ReductiveMonoid, FactorialMonoid or TextualMonoid. You can
thus construct a generic parser that operates on String, ByteString, or
Text input, or even on Product Integer or a Map if you are so inclined.
The version 0.8 of Streaming Component Combinators (a.k.a. SCC) has
also been re-designed from the ground up. In the earlier versions, as in
the pipes and conduit packages, the types of streams and
stream-processing components were
parametrized by the type of the individual items flowing through. All
sources and sinks are now parametrized instead by the type of the monoid
they produce or consume. As a consequence, SCC coroutines can now
communicate in chunks of
ByteString or Text instead of just lists, and these chunks can be of
arbitrary size. The boundaries of producer's chunks are invisible to the
consumer (excepting some low-level functions), which must specify the
amount of data it wants to receive using a ReadRequest. This change at
the heart of SCC has had a positive impact on outer layers, and
especially on the Splitter component type which has become much simpler.
More information about the Libraries