aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/haskell.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/haskell.scm')
-rw-r--r--gnu/packages/haskell.scm416
1 files changed, 416 insertions, 0 deletions
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 89709b8ffe..b59553f501 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -42,6 +42,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages emacs)
#:use-module (gnu packages gcc)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@@ -11347,6 +11348,421 @@ stand for certain ASCII character sequences, i.e. → instead of @code{->},
∀ instead of @code{forall} and many others.")
(license license:bsd-3)))
+(define-public ghc-genvalidity
+ (package
+ (name "ghc-genvalidity")
+ (version "0.5.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/genvalidity/genvalidity-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "17ykq38j9a2lzir6dqz5jgy6ndaafrpkhqhcg96c5ppg7wcxaaj0"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-validity" ,ghc-validity)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("hspec-discover" ,hspec-discover)
+ ("ghc-hspec-core" ,ghc-hspec-core)))
+ (home-page
+ "https://github.com/NorfairKing/validity")
+ (synopsis
+ "Testing utilities for the @code{validity} library")
+ (description
+ "This package provides testing utilities that are useful in conjunction
+with the @code{Validity} typeclass.")
+ (license license:expat)))
+
+(define-public ghc-genvalidity-property
+ (package
+ (name "ghc-genvalidity-property")
+ (version "0.2.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "genvalidity-property/genvalidity-property-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0cjw5i2pydidda9bnp6x37ylhxdk9g874x5sadr6sscg5kq85a1b"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-genvalidity" ,ghc-genvalidity)
+ ("ghc-hspec" ,ghc-hspec)
+ ("hspec-discover" ,hspec-discover)
+ ("ghc-validity" ,ghc-validity)))
+ (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+ (home-page
+ "https://github.com/NorfairKing/validity")
+ (synopsis
+ "Standard properties for functions on @code{Validity} types")
+ (description
+ "This package supplements the @code{Validity} typeclass with standard
+properties for functions operating on them.")
+ (license license:expat)))
+
+(define-public ghc-validity
+ (package
+ (name "ghc-validity")
+ (version "0.7.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/validity/validity-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0xribw98amafihw87ddajk6vlirp7w9b26lrnjgq7jfm4710j95f"))))
+ (build-system haskell-build-system)
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)
+ ("hspec-discover" ,hspec-discover)))
+ (home-page
+ "https://github.com/NorfairKing/validity")
+ (synopsis "Validity typeclass")
+ (description
+ "Values of custom types usually have invariants imposed upon them. This
+package provides the @code{Validity} type class, which makes these invariants
+explicit by providing a function to check whether the invariants hold.")
+ (license license:expat)))
+
+(define-public ghc-path
+ (package
+ (name "ghc-path")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/path/path-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
+ (build-system haskell-build-system)
+ (arguments
+ ;; TODO: There are some Windows-related tests and modules that need to be
+ ;; danced around.
+ `(#:tests? #f
+ #:cabal-revision
+ ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-hashable" ,ghc-hashable)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-genvalidity" ,ghc-genvalidity)
+ ("ghc-genvalidity-property" ,ghc-genvalidity-property)
+ ("ghc-hspec" ,ghc-hspec)
+ ("ghc-validity" ,ghc-validity)))
+ (home-page
+ "http://hackage.haskell.org/package/path")
+ (synopsis "Support for well-typed paths")
+ (description "This package introduces a type for paths upholding useful
+invariants.")
+ (license license:bsd-3)))
+
+(define-public ghc-path-io
+ (package
+ (name "ghc-path-io")
+ (version "1.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/path-io/path-io-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1g9m3qliqjk1img894wsb89diym5zrq51qkkrwhz4sbm9a8hbv1a"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-dlist" ,ghc-dlist)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-path" ,ghc-path)
+ ("ghc-transformers-base" ,ghc-transformers-base)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-temporary" ,ghc-temporary)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)))
+ (arguments
+ `(#:cabal-revision
+ ("3" "1h9hsibbflkxpjl2fqamqiv3x3gasf51apnmklrs9l9x8r32hzcc")))
+ (home-page
+ "https://github.com/mrkkrp/path-io")
+ (synopsis "Functions for manipulating well-typed paths")
+ (description "This package provides an interface to the @code{directory}
+package for users of @code{path}. It also implements some missing stuff like
+recursive scanning and copying of directories, working with temporary
+files/directories, and more.")
+ (license license:bsd-3)))
+
+(define-public ghc-hindent
+ (package
+ (name "ghc-hindent")
+ (version "5.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hindent/hindent-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0wkfik7mvqskk23kyh7ybgnlh3j9j1ym7d3ncahsbli9w654b7xg"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:modules ((guix build haskell-build-system)
+ (guix build utils)
+ (guix build emacs-utils))
+ #:imported-modules (,@%haskell-build-system-modules
+ (guix build emacs-utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'emacs-install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (elisp-file "elisp/hindent.el")
+ (dest (string-append out "/share/emacs/site-lisp"
+ "/guix.d/hindent-" ,version))
+ (emacs (string-append (assoc-ref inputs "emacs")
+ "/bin/emacs")))
+ (make-file-writable elisp-file)
+ (emacs-substitute-variables elisp-file
+ ("hindent-process-path"
+ (string-append out "/bin/hindent")))
+ (install-file elisp-file dest)
+ (emacs-generate-autoloads "hindent" dest)))))))
+ (inputs
+ `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+ ("ghc-monad-loops" ,ghc-monad-loops)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-yaml" ,ghc-yaml)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-path" ,ghc-path)
+ ("ghc-path-io" ,ghc-path-io)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-diff" ,ghc-diff)
+ ("emacs" ,emacs-minimal)))
+ (home-page
+ "https://github.com/commercialhaskell/hindent")
+ (synopsis "Extensible Haskell pretty printer")
+ (description
+ "This package provides automatic formatting for Haskell files. Both a
+library and an executable.")
+ (license license:bsd-3)))
+
+(define-public ghc-descriptive
+ (package
+ (name "ghc-descriptive")
+ (version "0.9.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/descriptive/descriptive-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-bifunctors" ,ghc-bifunctors)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-hspec" ,ghc-hspec)))
+ (home-page
+ "https://github.com/chrisdone/descriptive")
+ (synopsis
+ "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.")
+ (description
+ "This package provides datatypes and functions for creating consumers
+and parsers with useful semantics.")
+ (license license:bsd-3)))
+
+(define-public ghc-exactprint
+ (package
+ (name "ghc-exactprint")
+ (version "0.5.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
+ (sha256
+ (base32
+ "141k6qiys0m0r4br7ikp4i546vs3xcil9cwglzcdfcbnb5nj1z87"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-paths" ,ghc-paths)
+ ("ghc-syb" ,ghc-syb)
+ ("ghc-free" ,ghc-free)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-diff" ,ghc-diff)
+ ("ghc-silently" ,ghc-silently)
+ ("ghc-filemanip" ,ghc-filemanip)))
+ (home-page
+ "http://hackage.haskell.org/package/ghc-exactprint")
+ (synopsis "ExactPrint for GHC")
+ (description
+ "Using the API Annotations available from GHC 7.10.2, this library
+provides a means to round-trip any code that can be compiled by GHC, currently
+excluding @file{.lhs} files.")
+ (license license:bsd-3)))
+
+(define-public ghc-microlens-mtl
+ (package
+ (name "ghc-microlens-mtl")
+ (version "0.1.11.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-microlens" ,ghc-microlens)
+ ("ghc-transformers-compat" ,ghc-transformers-compat)))
+ (home-page "https://github.com/monadfix/microlens")
+ (synopsis
+ "@code{microlens} support for Reader/Writer/State from mtl")
+ (description
+ "This package contains functions (like @code{view} or @code{+=}) which
+work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the
+mtl package. This package is a part of the
+@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
+readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
+ (license license:bsd-3)))
+
+(define-public ghc-microlens-ghc
+ (package
+ (name "ghc-microlens-ghc")
+ (version "0.4.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "03iwgg8zww9irv59l70c8yy7vzxir1zf66y12210xk91k5hq6jrj"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-microlens" ,ghc-microlens)))
+ (home-page "https://github.com/monadfix/microlens")
+ (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
+ (description "This library provides everything that @code{microlens}
+provides plus instances to make @code{each}, @code{at}, and @code{ix}
+usable with arrays, @code{ByteString}, and containers. This package is
+a part of the @uref{http://hackage.haskell.org/package/microlens,
+microlens} family; see the readme
+@uref{https://github.com/aelve/microlens#readme, on Github}.")
+ (license license:bsd-3)))
+
+(define-public ghc-microlens-platform
+ (package
+ (name "ghc-microlens-platform")
+ (version "0.3.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "microlens-platform/microlens-platform-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1d4nhmgf9jq0ixc7qhwm7aaw3xdr0nalw58d0ydsydgf02cyazwv"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hashable" ,ghc-hashable)
+ ("ghc-microlens" ,ghc-microlens)
+ ("ghc-microlens-ghc" ,ghc-microlens-ghc)
+ ("ghc-microlens-mtl" ,ghc-microlens-mtl)
+ ("ghc-microlens-th" ,ghc-microlens-th)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-vector" ,ghc-vector)))
+ (home-page "https://github.com/monadfix/microlens")
+ (synopsis "Feature-complete microlens")
+ (description
+ "This package exports a module which is the recommended starting point
+for using @uref{http://hackage.haskell.org/package/microlens, microlens} if
+you aren't trying to keep your dependencies minimal. By importing
+@code{Lens.Micro.Platform} you get all functions and instances from
+@uref{http://hackage.haskell.org/package/microlens, microlens},
+@uref{http://hackage.haskell.org/package/microlens-th, microlens-th},
+@uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl},
+@uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as
+well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The
+minor and major versions of @code{microlens-platform} are incremented whenever
+the minor and major versions of any other @code{microlens} package are
+incremented, so you can depend on the exact version of
+@code{microlens-platform} without specifying the version of @code{microlens}
+you need. This package is a part of the
+@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
+readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
+ (license license:bsd-3)))
+
+(define-public ghc-hasktags
+ (package
+ (name "ghc-hasktags")
+ (version "0.71.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hasktags/hasktags-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-system-filepath" ,ghc-system-filepath)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+ (native-inputs
+ `(("ghc-json" ,ghc-json)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-microlens-platform" ,ghc-microlens-platform)
+ ("ghc-hunit" ,ghc-hunit)))
+ (home-page "http://github.com/MarcWeber/hasktags")
+ (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
+ (description
+ "This package provides a means of generating tag files for Emacs and
+Vim.")
+ (license license:bsd-3)))
+
(define-public ghc-stylish-haskell
(package
(name "ghc-stylish-haskell")