Validation alternatives and similar packages
Based on the "Data" category.
Alternatively, view Validation alternatives based on common mentions on social networks and blogs.
-
semantic-source
Parsing, analyzing, and comparing source code across many languages -
lens
Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens -
code-builder
Packages for defining APIs, running them, generating client code and documentation. -
text
Haskell library for space- and time-efficient operations over Unicode text. -
unordered-containers
Efficient hashing-based container types -
compendium-client
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 -
holmes
A reference library for constraint-solving with propagators and CDCL. -
binary
Efficient, pure binary serialisation using ByteStrings in Haskell. -
primitive
This package provides various primitive memory-related operations. -
resource-pool
A high-performance striped resource pooling implementation for Haskell -
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 -
dependent-sum
Dependent sums and supporting typeclasses for comparing and displaying them -
IORefCAS
A collection of different packages for CAS based data structures. -
audiovisual
Extensible records, variants, structs, effects, tangles -
dependent-map
Dependently-typed finite maps (partial dependent products) -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text. -
orgmode-parse
Attoparsec parser combinators for parsing org-mode structured text! -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
safecopy
An extension to Data.Serialize with built-in version control -
uuid-types
A Haskell library for creating, printing and parsing UUIDs -
scientific
Arbitrary-precision floating-point numbers represented using scientific notation
Access the most powerful time series database as a service
Do you think we are missing an alternative of Validation or a related project?
README
Validation
Several data-types like Either but with differing properties and type-class instances.
Library support is provided for those different representations, include
lens
-related functions for converting between each and abstracting over their
similarities.
Download from hackage.
AccValidation
The AccValidation
data type is isomorphic to Either
, but has an instance
of Applicative
that accumulates on the error side. That is to say, if two
(or more) errors are encountered, they are appended using a Semigroup
operation.
As a consequence of this Applicative
instance, there is no corresponding
Bind
or Monad
instance. AccValidation
is an example of, "An applicative
functor that is not a monad."
Validation
The Validation
data type is isomorphic to Either
and has a Monad
instance that does the same as Either
. The only difference to Either
is
the constructor names and surrounding library support.
ValidationT
The ValidationT
data type is the monad transformer for Validation
. An
instance of MonadTrans
is provided for (ValidationT err)
. Due to the
arrangement of the ValidationT
type constructor, which permits a MonadTrans
instance, there is no possible
Bifunctorinstance. Consequently, the
ValidationBdata type provides a
Bifunctorinstance (but not a
MonadTransinstance). Library support is provided to exploit the isomorphism
to
ValidationB`.
Note that since AccValidation
is not a monad, there is also no corresponding
monad transformer for this data type.
ValidationB
The ValidationB
data type is similar to the monad transformer for
Validation
(ValidationT
), however, due to the arrangement of the
ValidationB
type constructor, which permits a Bifunctor
instance, there is
no possible MonadTrans
instance. Consequently, the ValidationT
data type
provides a MonadTrans
instance (but not a Bifunctor
instance). Library
support is provided to exploit the isomorphism to ValidationT
.