Subject: [bug#53687] Add ghc-pipes-safe

From: WinterHound <[email-masked]>
Date: Tue, 1 Feb 2022 15:02:06 +0530

---
 gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a7e4bffc8e..a026024c4a 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9737,6 +9737,34 @@ (define-public ghc-pipes-bytestring
     (description "This library provides pipes utilities for ByteStrings")
     (license license:bsd-3)))
 
+(define-public ghc-pipes-safe
+  (package
+    (name "ghc-pipes-safe")
+    (version "2.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hackage-uri "pipes-safe" version))
+       (sha256
+        (base32 "19gp93x5m1bnq240bj3v33pglf9r5gzji39fsjcazji837czghab"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-transformers-base ghc-monad-control ghc-primitive ghc-pipes))
+    (home-page "http://hackage.haskell.org/package/pipes-safe")
+    (synopsis "Safety for the pipes ecosystem")
+    (description "This package adds resource management and exception handling
+ to the pipes ecosystem.\n
+Notable features include:
+@enumerate
+@item Resource Safety: Guarantee finalization using finally, bracket and more
+@item Exception Safety: Even against asynchronous exceptions!
+@item Laziness: Only acquire resources when you need them
+@item Promptness: Finalize resources early when you are done with them
+@item Native Exception Handling: Catch and resume from exceptions inside pipes
+@item No Buy-in: Mix resource-safe pipes with unmanaged pipes using hoist
+@end enumerate\n")
+    (license license:bsd-3)))
+
 (define-public ghc-pointedlist
   (package
     (name "ghc-pointedlist")
-- 
2.34.0