star alternatives and similar packages
Based on the "Data" category.
Alternatively, view star alternatives based on common mentions on social networks and blogs.

semanticsource
Parsing, analyzing, and comparing source code across many languages 
text
Haskell library for space and timeefficient operations over Unicode text. 
codebuilder
Packages for defining APIs, running them, generating client code and documentation. 
compendiumclient
Mu (μ) is a purely functional framework for building micro services. 
cassava
A CSV parsing and encoding library optimized for ease of use and high performance 
resourcepool
A highperformance striped resource pooling implementation for Haskell 
primitive
This package provides various primitive memoryrelated operations. 
dependentsum
Dependent sums and supporting typeclasses for comparing and displaying them 
discrimination
Fast linear time sorting and discrimination for a large class of data types 
reflection
Reifies arbitrary Haskell terms into types that can be reflected back into terms 
dependentmap
Dependentlytyped finite maps (partial dependent products) 
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions 
orgmodeparse
Attoparsec parser combinators for parsing orgmode structured text! 
texticu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.
Download talent.io’s Tech Salary Report
Do you think we are missing an alternative of star or a related project?
README
semirings
Haskellers are usually familiar with monoids and semigroups. A monoid has an appending operation <>
or mappend
and an identity element mempty
. A semigroup has an append <>
, but does not require an mempty
element.
A Semiring has two appending operations, 'plus' and 'times', and two respective identity elements, 'zero' and 'one'.
More formally, A semiring R is a set equipped with two binary relations + and *, such that:
 (R, +) is a commutative monoid with identity element 0:
 (a + b) + c = a + (b + c)
 0 + a = a + 0 = a
 a + b = b + a
 (R, *) is a monoid with identity element 1:
 (a * b) * c = a * (b * c)
 1 * a = a * 1 = a
 Multiplication left and right distributes over addition
 a * (b + c) = (a * b) + (a * c)
 (a + b) * c = (a * c) + (b * c)
 Multiplication by '0' annihilates R:
 0 * a = a * 0 = 0
*semirings
A *semiring (pron. "starsemiring") is any semiring with an additional operation 'star' (read as "asteration"), such that:
 star a = 1 + a * star a = 1 + star a * a
A derived operation called "aplus" can be defined in terms of star by:
 star :: a > a
 star a = 1 + aplus a
 aplus :: a > a
 aplus a = a * star a
As such, a minimal instance of the typeclass 'Star' requires only 'star' or 'aplus' to be defined.
use cases
semirings themselves are useful as a way to express that a type that supports a commutative and associative operation. Some examples:
 Numbers {Int, Integer, Word, Double, etc.}:
 'plus' is 'Prelude.+'
 'times' is 'Prelude.*'
 'zero' is 0.
 'one' is 1.
 Booleans:
 'plus' is ''
 'times' is '&&'
 'zero' is 'False'
 'one' is 'True'
 Set:
 'plus' is 'union'
 'times' is 'intersection'
 'zero' is the empty Set.
 'one' is the singleton Set containing the 'one' element of the underlying type.
 NFA:
 'plus' unions two NFAs.
 'times' appends two NFAs.
 'zero' is the NFA that acceptings nothing.
 'one' is the empty NFA.
 DFA:
 'plus' unions two DFAs.
 'times' intersects two DFAs.
 'zero' is the DFA that accepts nothing.
 'one' is the DFA that accepts everything.
*semirings are useful in a number of applications; such as matrix algebra, regular expressions, kleene algebras, graph theory, tropical algebra, dataflow analysis, power series, and linear recurrence relations.
Some relevant (informal) reading material:
http://stedolan.net/research/semirings.pdf
http://r6.ca/blog/20110808T035622Z.html
https://byorgey.wordpress.com/2016/04/05/thenetworkreliabilityproblemandstarsemirings/
additional credit
Some of the code in this library was lifted directly from the Haskell library 'semiringnum'.