Subject: [bug#38423] [PATCH 15/49] gnu: Add ghc-mtl-compat.

From: Robert Vollmert <[email-masked]>
Date: Fri, 29 Nov 2019 12:37:17 +0100

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index dc124b37a1..be5b7b64d5 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13437,3 +13437,42 @@ The implementation is based on `unordered-containers`.")
     (description
      "A sensible set of defaults for writing custom Preludes.")
     (license license:expat)))
+
+(define-public ghc-mtl-compat
+  (package
+    (name "ghc-mtl-compat")
+    (version "0.2.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/mtl-compat/mtl-compat-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "15388p9ybdn6digk6cpdsw6havd0yva8vvwl3p7fnc9sb59wln34"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("4"
+        "1mfrx8cpx0502sjv0bmlfkl0h46c4krldg8m89k4fj6iawwg2ab5")
+       #:haddock?
+       #f))
+    (home-page
+     "https://github.com/haskell-compat/mtl-compat")
+    (synopsis
+     "Backported Control.Monad.Except module from mtl")
+    (description
+     "This package backports the Control.Monad.Except module from mtl
+(if using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad
+transformer and the MonadError class.  This package should only be used
+if there is a need to use the Control.Monad.Except module specifically.
+If you just want the mtl class instances for ExceptT, use
+transformers-compat instead, since mtl-compat does nothing but reexport
+the instances from that package.  Note that unlike how mtl-2.2 or later
+works, the Control.Monad.Except module defined in this package exports
+all of ExceptT's monad class instances. Therefore, you may have to declare
+import Control.Monad.Except () at the top of your file to get all of the
+ExceptT instances in scope.")
+    (license license:bsd-3)))
-- 
2.21.0 (Apple Git-122.2)