ANNOUNCE: monoid-subclasses-0.1.1, incremental-parser-0.2.2, and SCC-0.8

Mario Blažević blamario at acanac.net
Fri Mar 22 05:07:14 CET 2013


     The new package monoid-subclasses [1] 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 [2] 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.

[1] http://hackage.haskell.org/package/monoid-subclasses-0.1.1
[2] http://hackage.haskell.org/package/incremental-parser-0.2.2
[3] http://hackage.haskell.org/package/scc-0.8




More information about the Libraries mailing list