Subject: [bug#64066] [PATCH 17/19] gnu: Add ghc-reflex

From: zamfofex <[email-masked]>
Date: Wed, 14 Jun 2023 09:48:57 -0300

* gnu/packages/haskell-xyz.scm (ghc-reflex): New variable.
---
 gnu/packages/haskell-xyz.scm | 66 ++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c8b41baa37..9e0137cd8c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9713,6 +9713,72 @@ (define-public ghc-reflection
 @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
+     "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 Functional Reactive
+Programming interface and an engine that efficiently implements that interface.
+. <https://reflex-frp.org>")
+    (license license:bsd-3)))
+
 (define-public ghc-regex
   (package
     (name "ghc-regex")
-- 
2.40.1