From ba0299b1b3827c8ac884ae4000ea2147f612f53b Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Tue, 14 Nov 2023 13:03:33 -0500
Subject: [PATCH] Update the example program to work with ExceptT

---
 download-sdmf/Main.hs | 9 ++++++---
 gbs-downloader.cabal  | 1 +
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/download-sdmf/Main.hs b/download-sdmf/Main.hs
index 6078709..a42c2f1 100644
--- a/download-sdmf/Main.hs
+++ b/download-sdmf/Main.hs
@@ -2,6 +2,8 @@
 
 module Main where
 
+import Control.Monad.Except (runExceptT)
+import Control.Monad.IO.Class (MonadIO (liftIO))
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Char8 as C8
 import qualified Data.ByteString.Lazy as BL
@@ -29,8 +31,9 @@ main = do
   where
     go announcements cap = do
         -- Download & decode the shares
-        result <- download announcements cap announcementToMutableStorageServer
+        result <- runExceptT $ download announcements cap announcementToMutableStorageServer
 
         -- Show the result
-        putStrLn "Your result:"
-        either print (C8.putStrLn . BL.toStrict) result
+        liftIO $ do
+            putStrLn "Your result:"
+            either print (C8.putStrLn . BL.toStrict) result
diff --git a/gbs-downloader.cabal b/gbs-downloader.cabal
index 7454b59..edf629c 100644
--- a/gbs-downloader.cabal
+++ b/gbs-downloader.cabal
@@ -181,6 +181,7 @@ executable download-sdmf
     , containers      >=0.6.0.1  && <0.7
     , gbs-downloader
     , megaparsec      >=8.0      && <9.3
+    , mtl             >=2.2.2    && <2.4
     , tahoe-ssk       >=0.3      && <0.4
     , text            >=1.2.3.1  && <1.3
     , yaml            >=0.11.5.0 && <0.11.9.0 || >=0.11.9.0.0 && <0.12
-- 
GitLab