gnu: Add ghc-validation.
* gnu/packages/haskell.scm (ghc-validation): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
2c4e4bc658
commit
252a4d5936
|
@ -11608,6 +11608,60 @@ default)
|
||||||
@end itemize")
|
@end itemize")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public ghc-validation
|
||||||
|
(package
|
||||||
|
(name "ghc-validation")
|
||||||
|
(version "1.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://hackage/package/validation/validation-"
|
||||||
|
version
|
||||||
|
".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
|
||||||
|
(build-system haskell-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'add-setup-script
|
||||||
|
(lambda _
|
||||||
|
;; The usual "Setup.hs" script is missing from the source.
|
||||||
|
(with-output-to-file "Setup.hs"
|
||||||
|
(lambda ()
|
||||||
|
(format #t "import Distribution.Simple~%")
|
||||||
|
(format #t "main = defaultMain~%"))))))))
|
||||||
|
(inputs
|
||||||
|
`(("ghc-semigroups" ,ghc-semigroups)
|
||||||
|
("ghc-semigroupoids" ,ghc-semigroupoids)
|
||||||
|
("ghc-bifunctors" ,ghc-bifunctors)
|
||||||
|
("ghc-lens" ,ghc-lens)))
|
||||||
|
(native-inputs
|
||||||
|
`(("ghc-hedgehog" ,ghc-hedgehog)
|
||||||
|
("ghc-hunit" ,ghc-hunit)))
|
||||||
|
(home-page "https://github.com/qfpl/validation")
|
||||||
|
(synopsis
|
||||||
|
"Data-type like Either but with an accumulating Applicative")
|
||||||
|
(description
|
||||||
|
"A data-type like Either but with differing properties and type-class
|
||||||
|
instances.
|
||||||
|
|
||||||
|
Library support is provided for this different representation, including
|
||||||
|
@code{lens}-related functions for converting between each and abstracting over
|
||||||
|
their similarities.
|
||||||
|
|
||||||
|
The @code{Validation} data type is isomorphic to @code{Either}, but has an
|
||||||
|
instance of @code{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 @code{Applicative} instance, there is no
|
||||||
|
corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
|
||||||
|
example of, \"An applicative functor that is not a monad.\"")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public ghc-concurrent-output
|
(define-public ghc-concurrent-output
|
||||||
(package
|
(package
|
||||||
(name "ghc-concurrent-output")
|
(name "ghc-concurrent-output")
|
||||||
|
|
Loading…
Reference in New Issue