summary refs log tree commit diff
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2017-10-18 03:07:53 +0000
committerLudovic Courtès <ludo@gnu.org>2017-10-22 15:32:18 -0700
commitf6094850d0893ad27a513a0381028ce1f5fb93c7 (patch)
treedfe27a4ee969e67857f8198ccbb25ea1a8077c1d
parent1896a2526d1db209afb0a8a55a63dc4c1162c539 (diff)
downloadguix-f6094850d0893ad27a513a0381028ce1f5fb93c7.tar.gz
gnu: Add ghc-foldl.
* gnu/packages/haskell.scm (ghc-foldl): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/haskell.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 977789d3da..e9660431ca 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -9932,4 +9932,36 @@ the vector; then you can execute the builder to actually produce the
 vector. ")
     (license license:expat)))
 
+(define-public ghc-foldl
+  (package
+    (name "ghc-foldl")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "foldl-" version "/"
+                           "foldl-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1z3xjz4khs2kr3mqkbh7dz4kd6gkdk2r67wjkvrxnmp533aqh90n"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
+              ("ghc-primitive" ,ghc-primitive)
+              ("ghc-text" ,ghc-text)
+              ("ghc-vector" ,ghc-vector)
+              ("ghc-unordered-containers" ,ghc-unordered-containers)
+              ("ghc-hashable" ,ghc-hashable)
+              ("ghc-contravariant" ,ghc-contravariant)
+              ("ghc-profunctors" ,ghc-profunctors)
+              ("ghc-comonad" ,ghc-comonad)
+              ("ghc-vector-builder" ,ghc-vector-builder)))
+    (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
+    (synopsis "Composable, streaming, and efficient left folds for Haskell")
+    (description "This Haskell library provides strict left folds that stream
+in constant memory, and you can combine folds using @code{Applicative} style
+to derive new folds.  Derived folds still traverse the container just once
+and are often as efficient as hand-written folds.")
+    (license license:bsd-3)))
+
 ;;; haskell.scm ends here