summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorzamfofex <zamfofex@twdb.moe>2023-06-14 09:48:57 -0300
committerLudovic Courtès <ludo@gnu.org>2023-07-07 15:30:23 +0200
commit74de940455b639389da99a0ec6e05c3ec037c1c0 (patch)
tree03abc8552ccec9c52d09d3e73bc79dff76a78bf5 /gnu/packages
parenta760bc6e602c9130315a38c2c2627df093c51769 (diff)
downloadguix-74de940455b639389da99a0ec6e05c3ec037c1c0.tar.gz
gnu: Add ghc-reflex.
* gnu/packages/haskell-xyz.scm (ghc-reflex): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/haskell-xyz.scm66
1 files changed, 66 insertions, 0 deletions
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 72ab8ed3b4..9eb9ea39db 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9710,6 +9710,72 @@ configurations to coexist without resorting to mutable global variables or
 @code{System.IO.Unsafe.unsafePerformIO}.")
     (license license:bsd-3)))
 
+(define-public ghc-reflex
+  (package
+    (name "ghc-reflex")
+    (version "0.8.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "reflex" version))
+              (sha256
+               (base32
+                "1add5bcsyq2k02w2q0ifbyfcvcic1hmjdbgxg8ajd5riam0lhb16"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "reflex")))
+    (inputs (list ghc-memotrie
+                  ghc-bifunctors
+                  ghc-comonad
+                  ghc-commutative-semigroups
+                  ghc-constraints
+                  ghc-constraints-extras
+                  ghc-data-default
+                  ghc-dependent-map
+                  ghc-exception-transformers
+                  ghc-lens
+                  ghc-mmorph
+                  ghc-monad-control
+                  ghc-patch
+                  ghc-prim-uniq
+                  ghc-primitive
+                  ghc-profunctors
+                  ghc-random
+                  ghc-ref-tf
+                  ghc-reflection
+                  ghc-semigroupoids
+                  ghc-syb
+                  ghc-unbounded-delays
+                  ghc-witherable
+                  ghc-these
+                  ghc-semialign
+                  ghc-monoidal-containers
+                  ghc-dependent-sum
+                  ghc-haskell-src-exts
+                  ghc-haskell-src-meta))
+    (native-inputs (list hlint
+                         ghc-split
+                         ghc-filemanip
+                         ghc-these-lens
+                         ghc-hspec
+                         ghc-proctest))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "reflex.cabal"
+               (("\\bmmorph >= 1\\.0 && < 1\\.2,") "mmorph,")))))))
+    (home-page "https://reflex-frp.org")
+    (synopsis "Higher-order functional reactive programming")
+    (description
+     "This library lets you write interactive programs without callbacks or
+side-effects.  Functional Reactive Programming (FRP) uses composable events
+and time-varying values to describe interactive systems as pure functions.
+Just like other pure functional code, functional reactive code is easier to
+get right on the first try, maintain, and reuse.  Reflex is a
+fully-deterministic, higher-order FRP interface and an engine that efficiently
+implements that interface.")
+    (license license:bsd-3)))
+
 (define-public ghc-regex
   (package
     (name "ghc-regex")