Subject: [PATCH v2 14/24] gnu: Add ghc-stm-delay.

From: Stephen Paul Weber <[email-masked]>
Date: Thu, 13 Jan 2022 21:45:36 -0500

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 74d6460edf..f7a04e2976 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -16408,3 +16408,24 @@ Does only what it needs to do and nothing more, no XEP wrappers etc.")
 based on `perfect shuffle' implementation by Oleg Kiselyov
 available at http://okmij.org/ftp/Haskell/perfect-shuffle.txt")
     (license license:bsd-3)))
+
+(define-public ghc-stm-delay
+  (package
+    (name "ghc-stm-delay")
+    (version "0.1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hackage-uri "stm-delay" version))
+        (sha256
+          (base32 "0cla21v89gcvmr1iwzibq13v1yq02xg4h6k9l6kcprj7mhd5hcmi"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/joeyadams/haskell-stm-delay")
+    (synopsis "Updatable one-shot timer polled with STM")
+    (description
+      "STM Delay lets you create a one-shot timer, poll it using STM,
+and update it to ring at a different time than initially specified.  It uses
+GHC event manager timeouts when available (GHC 7.2+, -threaded, non-Windows OS),
+yielding performance similar to threadDelay and registerDelay.  Otherwise,
+it falls back to forked threads and threadDelay.")
+    (license license:bsd-3)))
-- 
2.30.2